如何使用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字符串,怎么做? 另外,设置内容长度和类型。
答案 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接口。