2017-08-13 1 views
0

Bitte unterstützen Sie mich!Rufen Sie Restful Webservice von Android-Anwendung

Webservice (Jersey geruhsamen):

@POST 
@Path("/login") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.TEXT_HTML) 
public String login(
     @QueryParam("name") String name, 
     @QueryParam("password") String password) { 
    System.out.println("[login] name: " + name); 
    System.out.println("[login] password: " + password); 
} 

Android App:

StringRequest insertRequest = new StringRequest(Request.Method.POST, Config.BASE_URL + login, new Response.Listener<String>() { 
// ... 
@Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("name", name); 
      params.put("password", pass); 
      return params; 
     } 
@Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<String, String>(); 
      headers.put("Content-Type", "application/json; charset=utf-8"); 
      return headers; 
     } 

In Server i Namen und ein Passwort erhalten ist null. Was ist passiert ?

+0

Ich benutze postman ruf webservice => OK – ahihi

Antwort

0

@QueryParam ist nicht mit Json verwendet werden, ist es in den URI-Teil. Beispiel: users/query?from=100&to=200&orderBy=age&orderBy=name, Abfrageparameter für diesen URI wären from, to, orderBy.

Um json zu verwenden, müssen Sie Object Mapper gegen eingehende JSON ausführen oder die Eingabe als String akzeptieren und in json konvertieren. Hier

ein Beispiel: JSON example with Jersey + Jackson

-Code für selbst konvertieren JSon (mit Gson) Maven Repository zu GSON

@POST 
@Path("/login") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.TEXT_HTML) 
public String login(String jsonData) { 
    JsonParser parser = new JsonParser(); 
    JsonObject o = parser.parse(jsonData).getAsJsonObject(); 
} 

Der Grund Ihrer Postbote arbeitet sein könnte, weil Sie eigentlich senden ein x-www-form-urlencoded enter image description here

+0

:(, mache ich noch nicht verstehen. Wie sollte der Server repariert werden? – ahihi

+0

Ich habe einen Beispielcode mit Gson geschrieben, um die Zeichenfolge in JsonObject zu konvertieren. Obwohl dies externe Abhängigkeit erfordert – XPLOT1ON

+0

Ich verstehe, danke pro! – ahihi

Verwandte Themen