ich einen Web-Service zu schreiben bin versucht, die die Content-Length-Header erfordert den folgenden Code festgelegt werden unter Verwendung von:Jersey 2.0 Content-Length nicht gesetzt
// EDIT: added apache connector code
ClientConfig clientConfig = new ClientConfig();
ApacheConnector apache = new ApacheConnector(clientConfig);
// setup client to log requests and responses and their entities
client.register(new LoggingFilter(Logger.getLogger("com.example.app"), true));
Part part = new Part("123");
WebTarget target = client.target("https://api.thing.com/v1.0/thing/{thingId}");
Response jsonResponse = target.resolveTemplate("thingId", "abcdefg")
.request(MediaType.APPLICATION_JSON)
.header(HttpHeaders.AUTHORIZATION, "anauthcodehere")
.post(Entity.json(part));
in den Versionshinweisen https://java.net/jira/browse/JERSEY-1617 und Jersey 2.0 Dokumentation https://jersey.java.net/documentation/latest/message-body-workers.html bedeutet, dass Content-Length automatisch eingestellt wird. Ich bekomme jedoch einen 411-Antwortcode vom Server zurück, der anzeigt, dass Inhaltslänge nicht in der Anfrage vorhanden ist.
Kennt jemand den besten Weg, um den Content-Length Header gesetzt zu bekommen?
Ich habe durch Einrichten eines Protokollierers überprüft, dass der Content-Length-Header in der Anforderung nicht generiert wird.
Danke.
Sie möchten möglicherweise überprüfen, ob der Anforderungsinhalt die Inhaltslänge hat oder nicht. –
Aktivieren Sie die Protokollierung, um die Anforderung zu überprüfen ('client.addfilter (new LoggingFilter (System.out))'), damit Sie sicher sein können, dass das Problem an Ihrem Ende liegt. – DannyMo
Ich habe vergessen zu erwähnen, dass ich einen Logger eingerichtet und überprüft habe, dass der Content-Length-Header nicht generiert wird. Ich habe meine Frage bearbeitet, um die neuen Informationen zu berücksichtigen. – Todd