Ich benutze Jersey HTTP-Client zum Senden von POST-Anfrage und Empfangen von 411 Content-Länge fehlt als Antwort. Dieser Fehler wird jedoch nicht in allen Fällen ausgelöst. Es gibt einige Anrufe, wo ich json Inhaltstyp verwende und es funktioniert gut.Jersey Http Client antwortet mit 411 auf POST-Anfrage
Für diese spezielle Anfrage, wo ich die Anfrage an eine bestimmte URL senden ich bin 411 Content Länge erforderlich. Während mit der gleichen Nutzlast, wenn ich eine andere URL verwende, funktioniert es gut. Diese
ist, wie ich bin die Einrichtung Formular Entity in Jersey Client Request
public static MultivaluedMap<String, String> getMultivaluedMapRequest(Map<String, String> map) {
MultivaluedMap<String, String> bodyParams = new MultivaluedHashMap<String, String>();
if (null != map && map.size() > 0) {
for (Entry<String, String> param : map.entrySet()) {
bodyParams.add(param.getKey(), param.getValue());
}
}
return bodyParams;
}
private static Entity<?> getRequestEntity(final HttpRequestPayload<?> payload) {
if (payload.getEntity() instanceof MultivaluedMap<?, ?>) {
return Entity.form((MultivaluedMap<String, String>) payload.getEntity());
} else {
return Entity.entity(payload.getEntity(), payload.getMediaTypeProduced());
}
}
Dies ist, wie der Anruf
gemacht wirdfinal Entity<?> entity = getRequestEntity(payload);
Response response = target.request(payload.getMediaTypeConsumed()).headers(payload.getHeaders()).post(entity);
Ich bin nicht sicher, was das Problem ist. Ich denke, es hat etwas mit der URL zu tun, an die ich die Anfrage sende.
Überprüfen, ob bodyParams leer oder nicht? Wenn leer -> 411 Status, weil kein Inhalt gepostet wurde. – Loc
bodyParams hat Daten. Es ist nicht leer. –
geschafft, es zu lösen !! –