![](/img/trans.png)
[英]How to add a json array on android post request to madrill API
[英]How to properly format a POST API request with JSON?
我在教自己如何開發Android應用程序,最近我開始使用Volley庫進行聯網。 我已經能夠發送基本請求。 我正在嘗試使用Pocket的API,以查看我的應用程序是否可以提取項目。 他們的文檔頁面提到我必須像這樣發送JSON請求
POST /v3/oauth/request HTTP/1.1
Host: getpocket.com
Content-Type: application/json; charset=UTF-8
X-Accept: application/json
{"consumer_key":"1234-abcd1234abcd1234abcd1234",
"redirect_uri":"pocketapp1234:authorizationFinished"}
因此,我在應用程序中制作了一個JSONObject,將鍵consumer_key
添加到我的使用者密鑰的值,然后在鍵redirect_uri
添加了它們各自的值。 我使用Volley將這個JSONObject作為請求發送到所需的URL,作為POST請求。 我收到的響應代碼是403,這是由錯誤的使用者密鑰引起的。 我已經仔細檢查了使用者密鑰,所以問題出在我的請求上。 我應該如何發出JSON請求? 我是否需要添加額外的數據,例如Content-Type? 如果是這樣,怎么辦?
如果不是太多,您可以指出我對JSON的初學者友好的知識,因為我對Web開發沒有太多了解嗎? 謝謝。
您在代碼上使用哪種請求方法? 使用StringRequest方法時遇到問題。 使用JsonObjectRequest方法時其工作。
除了我的經驗,這是如何創建請求。
final Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Accept", "application/json");
headers.put("consumer_key", "your-consumer-key");
headers.put("redirect_uri", "https://kamus.nusagates.com");
JSONObject obj = new JSONObject(headers);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("https://getpocket.com/v3/oauth/request", obj, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
//get all response data
Log.d("respon", String.valueOf(response));
try {
//get code from response
Log.d("respon code", response.getString("code"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers;
}
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
String server = String.valueOf(response.headers);
Log.d("header", server);
return super.parseNetworkResponse(response);
}
};
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
queue.add(jsonObjectRequest);
也許這可以幫助您解決問題。
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.