#android #json #model-view-controller #asp.net-web-api #android-volley
#Android #json #модель-представление-контроллер #asp.net-web-api #android-volley
Вопрос:
Как я могу подключиться к серверу с Android Volley и получать данные в формате JSON или XML из WebApi2 с определением HTTP заголовков типа содержимого как application / json и принять как application / JSON?
У меня есть простой метод HttpPost в WebApi2, подобный этому:
[HttpPost]
public String GetData([FromBody]string data)
{
return data;
}
Как вы можете видеть, я использую Google extension Advanced REST client для тестирования метода, и он работает должным образом.
Я установил заголовки HTTP и параметры, после чего отправил ответ сервера.
Теперь я хочу использовать 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.Ошибка сервера
Я обыскал весь Интернет и не смог найти никаких ответов, которые могли бы помочь мне исправить это.
заранее спасибо.
Ответ №1:
попробуйте вот так Map params = new HashMap params.put(«данные», «Привет, мир»);
затем по запросу here.Метод.СООБЩЕНИЕ,»http://localhost:15369/api/Test/GetData «, новый JSONObject (параметры)
Комментарии:
1. params.put(«Данные», «Привет, мир»);