0
我正尝试创建一个利用Google Places API的Android应用程序,但我希望它列出当前不受支持的某种类型的地方。我知道我可以通过应用程序添加地点,但我遇到了一个问题。我不断收到以下错误:Google Places API:错误400:(错误的请求)
错误400:(错误的请求) 您的客户发出格式错误或非法的请求。
我已经搜索了所有的工作示例提交添加请求的地方api,但我似乎无法找到任何可以告诉我我做错了什么。下面是我试过的代码大部分我各种网站上找到,似乎仍不能得到它的工作之一:
private static final String PLACE_ADD_URL = "https://maps.googleapis.com/maps/api/place/add/json?";
public PlacesList addPlace() throws Exception {
try {
Log.v(LOG_KEY,"Adding Place...");
GenericUrl reqUrl = new GenericUrl(PLACE_ADD_URL);
reqUrl.put("key", API_KEY);
Log.v(LOG_KEY, "Adding Place...");
reqUrl.put("Host: maps.googleapis.com","{\"location\":{\"lat\":39.977112,\"lng\":-74.182799},\"accuracy\":50.0,\"name\":\"Artisan's Brewery & Italian Grill\",\"types\":[\"other\"],\"language\":\"en\":HTTP/1.1}");
Log.v(LOG_KEY, "Requested URL= " + reqUrl);
HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT);
HttpRequest request = httpRequestFactory.buildGetRequest(reqUrl);
Log.v(LOG_KEY, request.execute().parseAsString());
PlacesList place = request.execute().parseAs(PlacesList.class);
Log.v(LOG_KEY, "STATUS = " + place.status);
Log.v(LOG_KEY, "Place Added is = " + place);
return place;
} catch (HttpResponseException e) {
Log.v(LOG_KEY, e.getMessage());
throw e;
}
catch (IOException e) {
// TODO: handle exception
throw e;
}
}
你是否在android模拟器中运行这个模拟器,并将其升级为一个像代理商一样的HTTP代理,并查看你通过线路发送的内容? – Alan
不,我直接从Samsung Galaxy Nexus运行它。我希望有人会有教程或关于如何从应用程序中添加地点的内容。 –
取而代之,尝试查看HTTP代理中的请求,并查看是否可以手动调整请求以使其工作。 – Alan