j.setUrl("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyA712jyN6NY0VXSGf8zgXfXSRhq01O8RLY");
这是我的json url和我的密钥。它总是给我状态请求被拒绝。我尝试使用调试密钥库和新的密钥库来创建大量密钥,但没有任何作用。它是谷歌的示例网址。它对我不起作用。 如果您想提供有关新密钥的解决方案,请向我提供有关如何获取有效调试密钥的详细步骤。请非常详细。 如果您想提供有关传感器参数的解决方案,那么它已经存在。 如果你想要json解析器文件,如下所示
package com.json;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.AsyncTask;
public class JSONParser extends AsyncTask<Void, Void, JSONObject> {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
private String url;
// constructor
public JSONParser() {
}
@Override
protected JSONObject doInBackground(Void... params) {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(getUrl());
HttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(httpPost);
} catch (ClientProtocolException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
HttpEntity httpEntity = httpResponse.getEntity();
try {
is = httpEntity.getContent();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(is, "iso-8859-1"), 8);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
json = sb.toString();
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return JSON String
return jObj;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
编辑:我查看了我的api控制台的报告,它显示了请求已经发出,因为我看到请求我认为密钥不是无效的,因为它正确导致我的api控制台。如果我错了,请纠正我?
编辑2 :所以我尝试了一切新的ID,为我的调试密钥库获得了一个新的api密钥,使用url和json解析器类创建了一个全新的项目。我仍然得到请求被拒绝。有人能帮助我吗?
答案 0 :(得分:2)
Google Places API使用API密钥来标识您的应用。 API密钥通过Google API控制台进行管理。在开始使用API之前,您需要自己的API密钥。激活Places API并创建密钥。Click here to generate api key
试试吧。一切顺利。
答案 1 :(得分:1)
1)如何创建KeyStore
项目&gt;&gt;导出&gt;&gt; ExportAndroidApplication&gt;&gt;下一个&gt;&gt;创建新密钥库(记住密钥库路径)&gt;&gt;填写所有详细信息&gt;&gt; ...等
现在您的密钥库和Apk已创建。
2)如何获取证书指纹(MD5)
$ keytool -list -alias alias_name -keystore my-release-key.keystore
了解更多详情go here
现在你有像
这样的指纹证书指纹(MD5):94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98
3)如何获取MapApiKey click here并粘贴您的MD5然后您将获得MapAPIKey。在您的应用程序中使用此密钥。
答案 2 :(得分:1)
它最终有效,所以我做的是