将 Mashape API 与 Volley 或 HttpURLConnection 结合使用
Using Mashape APIs with Volley or HttpURLConnection
任何人都可以指出正确的方向或演示如何在没有 Unirest 的情况下使用 API 密钥向 Mashape 发出请求吗?
我希望仅使用 HttpURLConnection class 或 Android REST 库(如 OkHttp 或 Volley)向 Mashape API 发出 JSON 请求,但我不能弄清楚如何构建请求,或者是否有可能不使用 Mashape 的 Unirest 库。
这是他们推荐的创建 Unirest 请求的方式:
HttpResponse<JsonNode> response = Unirest.get("https://wordsapiv1.p.mashape.com/words/incredible/definitions")
.header("X-Mashape-Key", "**********apikey************")
.header("Accept", "application/json")
.asJson();
我试图避免使用 Unirest,因为设置它似乎很痛苦,而且伟大的 CommonsWare 自己也说过 Android 应该避免使用 Unirest:
Does anyone have an example of an android studio project that import Unirest via gradle?
在这个问题中,我实际上是在尝试使用与初学者相同的 api 和相同的情况:
我相信,我的答案就是您要找的。
我用的是Volley库,需要添加依赖:compile 'com.android.volley:volley:1.0.0'
RequestQueue requestQueue = Volley.newRequestQueue(this);
String uri = Uri.parse("https://wordsapiv1.p.mashape.com/words/incredible/definitions")
.buildUpon()
.build().toString();
StringRequest stringRequest = new StringRequest(
Request.Method.GET, uri, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("MainActivity", "response: " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("VolleyError", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("X-Mashape-Key", "<API_KEY>");
params.put("Accept", "text/plain");
return params;
}
};
requestQueue.add(stringRequest);
任何人都可以指出正确的方向或演示如何在没有 Unirest 的情况下使用 API 密钥向 Mashape 发出请求吗?
我希望仅使用 HttpURLConnection class 或 Android REST 库(如 OkHttp 或 Volley)向 Mashape API 发出 JSON 请求,但我不能弄清楚如何构建请求,或者是否有可能不使用 Mashape 的 Unirest 库。
这是他们推荐的创建 Unirest 请求的方式:
HttpResponse<JsonNode> response = Unirest.get("https://wordsapiv1.p.mashape.com/words/incredible/definitions")
.header("X-Mashape-Key", "**********apikey************")
.header("Accept", "application/json")
.asJson();
我试图避免使用 Unirest,因为设置它似乎很痛苦,而且伟大的 CommonsWare 自己也说过 Android 应该避免使用 Unirest: Does anyone have an example of an android studio project that import Unirest via gradle?
在这个问题中,我实际上是在尝试使用与初学者相同的 api 和相同的情况:
我相信,我的答案就是您要找的。
我用的是Volley库,需要添加依赖:compile 'com.android.volley:volley:1.0.0'
RequestQueue requestQueue = Volley.newRequestQueue(this);
String uri = Uri.parse("https://wordsapiv1.p.mashape.com/words/incredible/definitions")
.buildUpon()
.build().toString();
StringRequest stringRequest = new StringRequest(
Request.Method.GET, uri, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("MainActivity", "response: " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("VolleyError", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("X-Mashape-Key", "<API_KEY>");
params.put("Accept", "text/plain");
return params;
}
};
requestQueue.add(stringRequest);