如何使用Android Volley连接到服务器并从WebApi2获取数据作为JSON或XML,并将HTTP标头内容类型定义为 application / json 和接受为 application / JSON ?
我在WebApi2中有一个像HttpPost这样简单的方法:
[HttpPost]
public String GetData([FromBody]string data)
{
return data;
}
正如您所看到的,我使用Google扩展程序高级REST客户端来测试该方法,并且它可以正常运行。
我设置了HTTP Headers和params,然后服务器响应是我发送的。
现在我想使用Android Volley连接到服务器并通过设置HTTP标头和参数来获取数据,但它不起作用,我只是得到错误!
public void HttpPOSTRequestWithParameters() {
try {
RequestQueue queue = Volley.newRequestQueue(getContext());
JSONObject params = new JSONObject();
params.put("data", "Hello World");
JsonObjectRequest postRequest = new JsonObjectRequest(
Request.Method.POST,
"http://localhost:15369/api/Test/GetData",
params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("Response", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("ERROR", "error => " + error.toString());
}
}
) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("Accept", "application/json");
return headers;
}
};
queue.add(postRequest);
} catch (JSONException e) {
e.printStackTrace();
}
}
这是我得到的错误:
com.android.volley.ServerError
我搜索了整个互联网,我无法找到任何可以帮助我解决问题的答案。
提前感谢。
答案 0 :(得分:0)
试试这样 Map params = new HashMap params.put(“data”,“Hello World”);
然后在这里 Request.Method.POST, “http://localhost:15369/api/Test/GetData”, 新的JSONObject(params)