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

时间:2012-11-14 10:27:28

标签: java http httpclient

如何使用Google HTTP客户端进行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();
    }
} 

说我需要POST一个JSON字符串,怎么做? 另外,设置内容长度和类型。

1 个答案:

答案 0 :(得分: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();

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