2016-12-10 3 views
0

Ich erstelle einen Dienst, der für jetzt eine einfache CRUD ist. Ich habe eine Post-Methode, die ich von einer Android-Anwendung aufrufen möchte. Es hat vorher funktioniert, aber plötzlich kann ich es nur anrufen, wenn ich Postman oder etwas benutze. Vom Handy funktioniert es nicht.Java Rest (javax.ws.rs) POST nicht immer funktioniert

Ich sehe es durch den Filter mit Debugger gehen, aber es kommt nie in die Methode. Wenn ich den Filter entferne, bekomme ich das gleiche Ergebnis, daher weiß ich, dass der Filter nicht das Problem ist. Hat jemand eine Idee, warum das passieren könnte?

Einige Code-Schnipsel unter:

Der Endpunkt

@POST 
@Consumes(APPLICATION_JSON) 
@Path("/contact") 
public void opslaanContactbericht(ContactRequest request) { 
    contactService.opslaanBericht(request); 
} 

Das Android API-Schnittstelle (. Retrofit2 entfernt Kopfzeile, aber ich weiß, dass ein Teil in Filter arbeitet)

@POST("contact") 
@Headers("validheader") 
Call<Contact> opslaanContact(@Body Contact contact); 

Snippet wo Ich rufe die Schnittstelle:

BackendApi api = retrofit.create(BackendApi.class); 
Contact contact = new Contact(); 
contact.setName(this.naamTextview.getText().toString()); 
contact.setEmail(this.emailTextview.getText().toString()); 
contact.setBericht(this.berichtTextview.getText().toString()); 

Call<Contact> call = api.opslaanContact(contact); 
call.enqueue(this); 

Wenn es mehr Informationen benötigt fragen Sie mich einfach .. Nie zuvor so etwas gesehen, so dass ich wirklich nicht weiß, welche Informationen am nützlichsten ist.

Antwort

0

Sie fehlen die richtigen Header in Ihrem Retrofit, die sind standardmäßig nicht gesetzt:

@Headers({"Content-type: application/json"}) 
+0

Sehen Sie Ihren Kommentar ich though .. Verdammt, wenn das ist es, ich habe wirklich vermisst .. Das Problem war, dass eine Eigenschaft hatte ein falscher Name in der Anfrage .. – ProCx

+0

ohne diesen Header funktioniert es auch .. Danke für Sie beantworten – ProCx

0

eine Eigenschaft in der Anfrage hatte einen falschen Namen .. weard genug gibt es eine positive Antwort auf der Seite des Android, aber es erreicht nie den Code noch gibt einen Fehler .. Brilliant wtf, aber es ist jetzt gelöst