2015-05-11 5 views
0

Я сделал приложение для 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 ...

+0

Могу ли я, пожалуйста, знать, почему вопрос был понижен? .. Я поправлю его ... –

+0

Не могли бы вы рассказать мне, какое сообщение вернется, если вы выполните команду 'curl -X POST http://yourhost.com/yourpostwebservice'? Кстати, вам не хватает аннотации в классе 'Hello'? – 4gus71n

+0

Потому что там вы отправляете запрос GET, и с помощью curl вы отправляете POST один ... – 4gus71n

ответ

0

Извиняюсь за то, что такой тупой .... выше решение работало на рестарта !!

устройство android получает строку ответа после ответа POST !!!