私はサーバーのPOSTリクエストを作成し、JSONペイロードを送信し、レスポンスとして文字列レスポンスを受け取る必要があります。私はどこでも見てきましたが、カスタムリクエスト(これを実装しようとすると完全に失われてしまいます)を実装することなく、Volleyライブラリを使ってこれを行う簡単な方法はないようです。このPOSTリクエストを実行するための正しい方法は何ですか?VolleyはJSON Argument、Stringレスポンスのネイティブサポートを持っていますか
答えて
final JSONObject body = new JSONObject();
try {
// Todo: populate JSON body
} catch (JSONException e) {
e.printStackTrace();
}
StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://...",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override
public byte[] getBody() throws AuthFailureError {
return body.toString().getBytes();
}
@Override
public String getBodyContentType() {
return "application/json";
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
VolleyにはJsonObjectRequestとJsonArrayRequestがあります。絶対に
/**
* Making json object request
* */
public void makeJsonObjReq(String url) {
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,
url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
// msgResponse.setText(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
}
}) {
/**
* Passing some request headers
* */
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return headers;
}
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", "[email protected]");
return params;
}
};
// Adding request to request queue
ApplicationController.getInstance().addToRequestQueue(jsonObjReq,
tag_json_obj);
// Cancelling request
// ApplicationController.getInstance().getRequestQueue().cancelAll(tag_json_obj);
}
/**
* Making json array request
* */
public void makeJsonArryReq(String url, final int _type) {
JsonArrayRequest req = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
apiTaskListener.onTaskComplete("error",_type);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
apiTaskListener.onTaskComplete("error",_type);
}
});
// Adding request to request queue
ApplicationController.getInstance().addToRequestQueue(req,
tag_json_arry);
// Cancelling request
// ApplicationController.getInstance().getRequestQueue().cancelAll(tag_json_arry);
}
が、私は「ポスト」JSONオブジェクトにしたい、と引き換えに、サーバーが私のように解釈される応答を送信します、JSONオブジェクトを「取得」する必要はありません文字列。私は最初にJSONObjectを持っていますが、サーバーに文字列があり、スワップします。 –
あなたは、文字列の一つのフォーマットが、JSONは何もするので StringRequest strReq =新しいStringRequest を使用することができます。 あなたはjsonを文字列として送ることができます。 プロテクトMap
- 1. Volley JSONレスポンス
- 2. JSONObjectからVolleyのStringレスポンスを取得する方法
- 3. GSONが、私は次のタイプのJSONレスポンスを持っている
- 4. JSONやPHP:私は、このJSONレスポンスを持っているこの配列(オブジェクト)
- 5. Volleyの「レスポンス」と「エラー」には正確に何が含まれていますか?
- 6. Android Volley - POSTで空のレスポンスが返ってきて、POSTでJSONリクエストを行うことができない
- 7. は、私はこのようなREST APIからのJSONレスポンスを持っているJSON
- 8. "NSScanner:nil string argument"の原因は何ですか?
- 9. Androidのhttp jsonレスポンスが詰まっています
- 10. jsonオブジェクトを投稿し、String Volleyの応答待ち
- 11. mySQLはネットワークプログラミングをネイティブサポートしていますか?
- 12. 間違ったJSONレスポンスは
- 13. Rubyは私はこのようなJSONレスポンスを持っているJSONの宝石
- 14. Android volley json parsing
- 15. 私は、長さがdymanicあるJSONオブジェクトを持っている私は、このように来てJSONレスポンスを持ってそれを
- 16. は、私は、このフォーマットでのMongoDBからのJSONレスポンスを持っているhighcharts
- 17. .get json stringを使って配列に変換しますか?
- 18. StringのtoString()メソッドは実用的な目的を持っていますか?
- 19. は、私は次のコンポーネントMyComponent.vueを持っているREST APIレスポンス
- 20. Android Volley POST、JSONObject(int、string、jsonobjects)
- 21. AJAXエラープリフライトのレスポンスが無効なHTTPステータスコードを持っています
- 22. は、私は次のようにJSONレスポンスを返すWebサービスを持っているVBScriptの
- 23. Firefoxの県は、私は、次のJSONを持っているJSON
- 24. なぜ `std :: string`は` find`メンバ関数を持っていますか?
- 25. 値は「FSCalendar」にはメンバー「string」を持っていない
- 26. PythonのはAttributeError:モジュール「string」は持っていない属性「maketrans」
- 27. 私はJSONデータを持っている
- 28. Struts2でJSONアクションのインターセプタを持っていますか
- 29. デシリアライズJSONオブジェクトは、私は、このJSONオブジェクトを持っている
- 30. C++以外の言語は、C++ソースファイルをネイティブサポートしていますか?
パーフェクト - 助けてくれてありがとう。どこかに優雅な解決策があったに違いないとわかった... –