Ich habe einen Java -REST -Service, der einen großen Datenstrom im Chunked Transfer -Codierungsformat sendet. In meiner Implementierung (um zu vereinfachen, generiere ich hier statische Daten) < /p>
@Override
public void writeTo(
Stream stream,
Class type,
Type genericType,
Annotation[] annotations,
MediaType mediaType,
MultivaluedMap httpHeaders,
OutputStream entityStream)
throws IOException {
httpServletResponse.setHeader("Transfer-Encoding","chunked");
final Map trailers = new HashMap();
httpServletResponse.setTrailerFields(()->trailers);
try (stream;
PrintWriter w = new PrintWriter(new OutputStreamWriter(entityStream,StandardCharsets.UTF_8))
) {
try {
IntStream.rangeClosed(1, 100)
.forEachOrdered(
record -> {
try {
w.write(STRING_DATA);
} catch (Exception e) {
throw new ProcessingException(new IOException(e));
}
})
} catch (Exception e) {
trailers.put("X-Stream-Error","TT xxxxxxxxxxxxxxxxxxxxxx");
}
}
}
< /code>
Mein Apache HTTP5 -Client folgt: < /p>
public static void main(String[] args) throws Exception{
TrustStrategy acceptingTrustStrategy = (cert, authType) -> true;
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext,
NoopHostnameVerifier.INSTANCE);
Registry socketFactoryRegistry =
RegistryBuilder.create()
.register("https", sslsf)
.register("http", new PlainConnectionSocketFactory())
.build();
BasicHttpClientConnectionManager connectionManager =
new BasicHttpClientConnectionManager(socketFactoryRegistry);
try (CloseableHttpClient client =
HttpClients.custom() /*.setSSLSocketFactory(sslsf)*/
.setConnectionManager(connectionManager)
.build()) {
HttpPost request = new HttpPost(URL);
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
request.setHeader("TE","trailers");
request.setHeader("Trailer","X-Stream-Error");
List params = new ArrayList();
request.setEntity(new UrlEncodedFormEntity(params));
Supplier
Absturz beim Lesen von Anhängern in Chunked and Compressed HTTP -Antwort mithilfe von Apache HTTP5 -Client ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Apache HTTP Client 5 Timeout funktioniert nicht - Version httpclient5: 5.4.1
by Anonymous » » in Java - 0 Replies
- 0 Views
-
Last post by Anonymous
-