我正在使用 google places API 并且在解析中我使用的是 JSON,但是这一行
JsonHttpParser parser = new JsonHttpParser(new JacksonFactory());
request.addParser(parser);
已弃用。有什么办法可以解决或有任何替代方法吗?
函数如下:
public Placeslist search(double latitude, double longitude, double radius, String types)
throws Exception {
try {
HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT);
HttpRequest request = httpRequestFactory
.buildGetRequest(new GenericUrl(PLACES_SEARCH_URL));
request.getUrl().put("key", API_KEY);
request.getUrl().put("location", _latitude + "," + _longitude);
request.getUrl().put("radius", _radius);
request.getUrl().put("sensor", "false");
if(types != null)
request.getUrl().put("types", types);
Placeslist list = request.execute().parseAs(Placeslist.class);
// Check log cat for places response status
Log.d("Places Status", "" + list.status);
return list;
} catch (HttpResponseException e) {
Log.e("Error:", e.getMessage());
return null;
}
}
// Creating http request Factory
public static HttpRequestFactory createRequestFactory(
final HttpTransport transport) {
return transport.createRequestFactory(new HttpRequestInitializer() {
public void initialize(HttpRequest request) {
GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("Google-Places-Test");
request.setHeaders(headers);
JsonHttpParser parser = new JsonHttpParser(new JacksonFactory());
request.addParser(parser);
}
});
}
最佳答案
似乎类 JsonHttpParser
和方法 HttpRequest
在 1.11 版本中都被弃用了。参见 The Deprecated list获取更多信息。
所以代替:
JsonHttpParser parser = new JsonHttpParser(new JacksonFactory());
request.addParser(parser);
您现在将拥有:
JsonObjectParser parser = new JsonObjectParser(new JacksonFactory());
request.setParser(parser);
并将您的导入更改为:
import com.google.api.client.json.JsonObjectParser;
编辑:我已经测试过了,它对我有用。
关于android - Google 放置 API 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596350/