我想發一個服務器POST請求,發送一個JSON負載,並接收一個字符串響應作爲回報。我已到處尋找,似乎沒有一種簡單的方法來使用Volley庫來實現此功能,而無需實施自定義請求(我在嘗試實現時完全失去了它)。什麼是正確的方式來執行這個POST請求?Volley是否有JSON參數,字符串響應本機支持
0
A
回答
1
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);
0
排球有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);
}
+0
絕對,但我不希望「恢復」 JSON對象,我想「後」一個JSON對象,並在返回時,服務器就會給我一個迴應被解釋爲一個字符串。我是JSONObject的開始,服務器有一個字符串,我們將交換。 –
+0
您可以使用 StringRequest strReq = new StringRequest 因爲json只是一種字符串格式。 所以你可以發送你的json作爲字符串。 protected Map
相關問題
- 1. SolrJ是否支持字符串數組?
- 2. JavaScript是否支持逐字字符串?
- 3. Ruby是否支持逐字字符串?
- 4. json是否支持阿拉伯字符?
- 5. SAML2 SSO - EntityId中是否支持查詢字符串參數URI
- 6. JSON響應是否沒有「字符串」值?
- 7. Hash.slice是否支持字符串?
- 8. Process.StartInfo.Arguments是否支持UTF-8字符串?
- 9. flask_json擴展是否支持頂級數組JSON響應?
- 10. 反應本機JSON響應檢查字符串或對象
- 11. JSON字符串中是否支持雙引號?
- 12. java是否支持參數?
- 13. 是否有可能從郵政參數沒有查詢字符串的響應?
- 14. Json對字符串數組的響應
- 15. 是否有支持請求參數串聯的URL構建器?
- 16. JSON字符串在MySQL中JSON響應
- 17. ROWLEX是否本機支持IEnumerable <>?
- 18. mxml本機是否支持flash?
- 19. IBM Worklight - 本機iOS是否支持JSONStore?
- 20. PhoneGap是否支持Symbian本機功能?
- 21. Poco數據是否支持多個查詢字符串?
- 22. C++是否支持字符串類型的常量數組?
- 23. 隨機森林機器學習支持字符串字符嗎?
- 24. restclient是否支持json-patch?
- 25. jibx是否支持json?
- 26. GWT鏈接器是否支持參數?
- 27. Swagger 2.0是否支持矩陣參數?
- 28. MATLAB是否支持命名參數?
- 29. Coldfusion是否支持動態參數?
- 30. C#是否支持inout參數?
完美 - 感謝您的幫助。我知道那裏肯定有一個優雅的解決方案...... –