如何使用google api客户端库为java发送带有JSON数据的POST请求?

时间:2012-08-03 11:52:42

标签: android json http-post httprequest google-api-java-client

我正在尝试使用google api客户端库发送帖子请求,但无法成功。

这是我正在使用的代码段

UrlEncodedContent urlEncodedContent = new UrlEncodedContent(paramMap);   //paramMap contains email and password keypairs
HttpRequest request = httpRequestFactory.buildPostRequest(new GenericUrl(Constants.PHP_SERVICE_BASE_PATH + mPath) , urlEncodedContent);
String response = request.execute().parseAsString();

我没有得到预期的回应。我认为这是因为邮政参数,即电子邮件和密码没有以正确的格式发送。我需要用 JSON 发送它们。

注意:我没有将该库用于Google网络服务。

2 个答案:

答案 0 :(得分:6)

我使用Map作为JSON的输入。映射是为post请求使用的JsonHttpContent输入的。

Map<String, String> json = new HashMap<String, String>();
json.put("lat", Double.toString(location.getLatitude()));
json.put("lng", Double.toString(location.getLongitude()));
final HttpContent content = new JsonHttpContent(new JacksonFactory(), json);
final HttpRequest request = getHttpRequestFactory().buildPostRequest(new GenericUrl(url), content);

答案 1 :(得分:1)

UrlEncodedContent用于发布HTTP表单内容(Content-Type:application / x-www-form-urlencoded)。如果Content-Type是application / json,你应该使用

http://code.google.com/p/google-http-java-client/source/browse/google-http-client/src/main/java/com/google/api/client/http/json/JsonHttpContent.java