使用Google HTTP Client执行POST,PUT和DELETE

4 java http httpclient

如何使用Google HTTP Client执行POST,PUT和DELETE:

@Test
public void testGetDBs() throws IOException {
    GooUrl url = new GooUrl(GOO_URL);
    List<String> path = new LinkedList<String>();
    path.add("users");
    path.add("id1");
    url.setPathParts(path);
    url.fields = "";
    HttpRequest request;
    try {
        request = requestFactory.buildGetRequest(url);
        request.setMethod(HttpMethod.POST);
        String result = request.execute().parseAsString();
        System.out.println("Result = " + result);
    } catch (Exception e) {
        e.printStackTrace();
    }
} 
Run Code Online (Sandbox Code Playgroud)

假设我需要发布JSON字符串,该怎么做?另外,设置内容的长度和类型。

小智 5

您需要在执行之前构建适当的类型请求并设置其内容。

请注意,在示例代码中,您正在构建GET请求,然后将方法设置为POST,这很令人困惑。查看HttpRequestFactory代码,每个HTTP方法都有一个构建方法。尝试:

final request = requestFactory.buildPostRequest(url);
final byte [] contentBytes = ...//get some bytes!!
final HttpContent content = new ByteArrayContent("application/json", contentBytes ); 
request.setContent( content );
final String result = request.execute().parseAsString();
Run Code Online (Sandbox Code Playgroud)

似乎有几种不同的HttpContent类型可供选择(上面显示了ByteArrayContent),当然,如果发现它们不满足您的需求,则可以自己实现HttpContent接口。