1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.transport.jdk;
20
21 import java.io.BufferedReader;
22 import java.io.IOException;
23 import java.io.InputStreamReader;
24 import java.net.HttpURLConnection;
25 import java.nio.charset.StandardCharsets;
26
27 import org.eclipse.aether.spi.connector.transport.http.HttpTransporterException;
28 import org.eclipse.aether.spi.connector.transport.http.RFC9457.RFC9457Reporter;
29
30 public class JdkRFC9457Reporter extends RFC9457Reporter<HttpURLConnection, HttpTransporterException> {
31 public static final JdkRFC9457Reporter INSTANCE = new JdkRFC9457Reporter();
32
33 private JdkRFC9457Reporter() {}
34
35 @Override
36 protected boolean isRFC9457Message(final HttpURLConnection response) {
37 String contentType = response.getContentType();
38 return hasRFC9457ContentType(contentType);
39 }
40
41 @Override
42 protected int getStatusCode(final HttpURLConnection response) {
43 try {
44 return response.getResponseCode();
45 } catch (IOException e) {
46 return -1;
47 }
48 }
49
50 @Override
51 protected String getReasonPhrase(final HttpURLConnection response) {
52 return null;
53 }
54
55 @Override
56 protected String getBody(final HttpURLConnection response) throws IOException {
57 try (BufferedReader br =
58 new BufferedReader(new InputStreamReader(response.getInputStream(), StandardCharsets.UTF_8))) {
59 StringBuilder sb = new StringBuilder();
60 String line;
61 while ((line = br.readLine()) != null) {
62 sb.append(line);
63 }
64 return sb.toString();
65 }
66 }
67 }