Я сделал приложение для Android, которое собирает определенные данные с устройства Android, а затем отправляет их в виде строки на спокойный веб-сервер для получения соответствующего ответа от сервера. Я использую методы volley для запроса POST
. Мой код для передачи данных как в соответствии с:Обработка запроса POST (String), созданного Volley на веб-сервере
RequestQueue queue = Volley.newRequestQueue(getBaseContext());
String url ="server url";
StringRequest stringRequest = new StringRequest(Request.Method.POST,url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showOutput("Response is: "+ response.substring(0,500));
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
showOutput("That didn't work!");
}
}){
@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("query Type", "query Num");
params.put("para1", "test data 1");
params.put("para2", "test data 2");
return params;
}
};
queue.add(stringRequest);
Отредактировано:
Для того, чтобы ответить на этот запрос от андроида устройства, я создал веб-сервиса с помощью TOMCAT веб-контейнер и библиотека джерси .. .. Используя curl, я проверил, что сервер возвращает строку как для GET
, так и для POST
. Однако, когда я отправляю запрос POST/GET с устройства Android, ответ приходит в ErrorListener. Класс Java, который обрабатывает получить/сообщение запроса на сервере, а также различные варианты, которые я пробовал как в:
@Path("/hello")
public class Hello {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return "Hello GET String";
}
@POST
@Produces(MediaType.TEXT_PLAIN)
public String post(@QueryParam("param1")String param1, @QueryParam("param2")String param2){
String msg = param1+param2;
return msg;
}
/*
public Response post(@QueryParam("param1")String param1, @QueryParam("param2")String param2){
String msg = param1+param2;
return Response.ok(msg).build();
}
public Response post(@QueryParam("param1")String param1, @QueryParam("param2")String param2){
String msg = param1+param2;
return Response.ok().build();
}
public Response post(@Context UriInfo ui){
MultivaluedMap<String, String> queryParams =ui.getQueryParameters();
String msg = param1+param2;
Response r = null;
return r;
}
*/
}
Я не могу получить помощь: получить строки, посылаемые андроид устройства в POST запросить, обработать их и отправить обратно в качестве ответа на почтовый запрос.
Любая помощь будет appretiated ...
Могу ли я, пожалуйста, знать, почему вопрос был понижен? .. Я поправлю его ... –
Не могли бы вы рассказать мне, какое сообщение вернется, если вы выполните команду 'curl -X POST http://yourhost.com/yourpostwebservice'? Кстати, вам не хватает аннотации в классе 'Hello'? – 4gus71n
Потому что там вы отправляете запрос GET, и с помощью curl вы отправляете POST один ... – 4gus71n