如何通过 JsonObjectRequest 向 google 发送 API 请求?
How to send an API-request to google via JsonObjectRequest?
我想在我的 Android 应用程序中测试云视觉 API。
API 已激活,它在 Google Cloud Explorer 中工作,如下图所示。
如何通过 RequestQueue 对象发出简单的 post 请求?
我尝试了很多,但我的程序总是在 onErrorResponse
方法中跳转。
我的代码:
private static String apiKey = "myAPIKey";
private static final String baseURI = "https://vision.googleapis.com/v1/images:annotate?fields=responses%2FfaceAnnotations&key=" + apiKey;
private static String exampleRequest = "{\"requests\":[{\"image\":{\"source\":{\"imageUri\":\"https://wikipedia.de/img/Wikipedia-logo-v2-de.svg\"}},\"features\":[{\"type\":\"TEXT_DETECTION\"}]}]}";
private static void testRequest(){
JSONObject jsonObject = getJSONRequest(exampleRequest);
Response.Listener<JSONObject> responseListener = getResponseListener();
Response.ErrorListener errorListener = getErrorListener();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(baseURIPost, jsonObject, responseListener, errorListener);
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(jsonObjectRequest);
}
private static Response.ErrorListener getErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
};
}
private static Response.Listener<JSONObject> getResponseListener() {
return new Response.Listener() {
@Override
public void onResponse(Object response) {
}
};
}
private static JSONObject getJSONRequest(String json) {
try {
return new JSONObject(json);
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
问题是 API-key 没有添加账单。
上面问题中的代码现在可以正常工作了。
我想在我的 Android 应用程序中测试云视觉 API。
API 已激活,它在 Google Cloud Explorer 中工作,如下图所示。
如何通过 RequestQueue 对象发出简单的 post 请求?
我尝试了很多,但我的程序总是在 onErrorResponse
方法中跳转。
我的代码:
private static String apiKey = "myAPIKey";
private static final String baseURI = "https://vision.googleapis.com/v1/images:annotate?fields=responses%2FfaceAnnotations&key=" + apiKey;
private static String exampleRequest = "{\"requests\":[{\"image\":{\"source\":{\"imageUri\":\"https://wikipedia.de/img/Wikipedia-logo-v2-de.svg\"}},\"features\":[{\"type\":\"TEXT_DETECTION\"}]}]}";
private static void testRequest(){
JSONObject jsonObject = getJSONRequest(exampleRequest);
Response.Listener<JSONObject> responseListener = getResponseListener();
Response.ErrorListener errorListener = getErrorListener();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(baseURIPost, jsonObject, responseListener, errorListener);
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(jsonObjectRequest);
}
private static Response.ErrorListener getErrorListener() {
return new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
};
}
private static Response.Listener<JSONObject> getResponseListener() {
return new Response.Listener() {
@Override
public void onResponse(Object response) {
}
};
}
private static JSONObject getJSONRequest(String json) {
try {
return new JSONObject(json);
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
问题是 API-key 没有添加账单。 上面问题中的代码现在可以正常工作了。