5

如何使用 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();
    }
} 

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

4

1 回答 1

7

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

请注意,在您的示例代码中,您正在构建一个 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 接口。

于 2012-12-04T18:40:51.243 回答