7

我正在尝试使用 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 格式发送它们。

注意:我没有将图书馆用于谷歌网络服务。

4

2 回答 2

8

我使用 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);
于 2014-06-20T10:00:56.187 回答
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。爪哇

于 2012-08-07T11:37:36.660 回答