JDK 8 与 JDK 15 Jersey WebResource 的问题
Problem with JDK 8 vs JDK 15 Jersey WebResource
我的网络资源有问题。我正在从服务器请求数据。如果我 运行 带有 JDK 15 的程序,则一切正常。当我 运行 带有 JDK 8 的程序时,我从服务器收到错误 403。
我不知道这是否与它有任何关系,但此服务器之前已从 TLS 1.1 切换到 TLS 1.2。据我所知,JDK8 也应该能够使用 TLS 1.2。查询在转换之前有效。
Client restClient = Client.create();
WebResource webResource = restClient.resource(url);
ClientResponse resp = webResource.header("Authorization", "Basic " + authStringEnc)
.get(ClientResponse.class);
if(resp.getStatus() != 200){
System.err.println("Unable to connect to the server. Code " + resp.getStatus());
}
非常感谢您的帮助。
史蒂菲
更新:
谢谢您的帮助。在 运行ning ( -Djavax.net.debug=all) 我收到以下消息:
0000: 48 54 54 50 2F 31 2E 31 20 34 30 33 20 46 6F 72 HTTP/1.1 403 For
0010: 62 69 64 64 65 6E 0D 0A 44 61 74 65 3A 20 4D 6F bidden..Date: Mo
0020: 6E 2C 20 32 31 20 4D 61 72 20 32 30 32 32 20 30 n, 21 Mar 2022 0
0030: 39 3A 30 39 3A 35 31 20 47 4D 54 0D 0A 43 6F 6E 9:09:51 GMT..Con
0040: 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 2F tent-Type: text/
0050: 70 6C 61 69 6E 3B 20 63 68 61 72 73 65 74 3D 55 plain; charset=U
0060: 54 46 2D 38 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 TF-8..Content-Le
0070: 6E 67 74 68 3A 20 31 36 0D 0A 43 6F 6E 6E 65 63 ngth: 16..Connec
0080: 74 69 6F 6E 3A 20 6B 65 65 70 2D 61 6C 69 76 65 tion: keep-alive
0090: 0D 0A 58 2D 46 72 61 6D 65 2D 4F 70 74 69 6F 6E ..X-Frame-Option
00A0: 73 3A 20 53 41 4D 45 4F 52 49 47 49 4E 0D 0A 52 s: SAMEORIGIN..R
00B0: 65 66 65 72 72 65 72 2D 50 6F 6C 69 63 79 3A 20 eferrer-Policy:
00C0: 73 61 6D 65 2D 6F 72 69 67 69 6E 0D 0A 43 61 63 same-origin..Cac
00D0: 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 70 72 69 76 he-Control: priv
00E0: 61 74 65 2C 20 6D 61 78 2D 61 67 65 3D 30 2C 20 ate, max-age=0,
00F0: 6E 6F 2D 73 74 6F 72 65 2C 20 6E 6F 2D 63 61 63 no-store, no-cac
0100: 68 65 2C 20 6D 75 73 74 2D 72 65 76 61 6C 69 64 he, must-revalid
0110: 61 74 65 2C 20 70 6F 73 74 2D 63 68 65 63 6B 3D ate, post-check=
0120: 30 2C 20 70 72 65 2D 63 68 65 63 6B 3D 30 0D 0A 0, pre-check=0..
0130: 45 78 70 69 72 65 73 3A 20 54 68 75 2C 20 30 31 Expires: Thu, 01
0140: 20 4A 61 6E 20 31 39 37 30 20 30 30 3A 30 30 3A Jan 1970 00:00:
0150: 30 31 20 47 4D 54 0D 0A 45 78 70 65 63 74 2D 43 01 GMT..Expect-C
0160: 54 3A 20 6D 61 78 2D 61 67 65 3D 36 30 34 38 30 T: max-age=60480
0170: 30 2C 20 72 65 70 6F 72 74 2D 75 72 69 3D 22 68 0, report-uri="h
0180: 74 74 70 73 3A 2F 2F 72 65 70 6F 72 74 2D 75 72 ttps://report-ur
0190: 69 2E 63 6C 6F 75 64 66 6C 61 72 65 2E 63 6F 6D i.cloudflare.com
01A0: 2F 63 64 6E 2D 63 67 69 2F 62 65 61 63 6F 6E 2F /cdn-cgi/beacon/
01B0: 65 78 70 65 63 74 2D 63 74 22 0D 0A 53 65 72 76 expect-ct"..Serv
01C0: 65 72 3A 20 63 6C 6F 75 64 66 6C 61 72 65 0D 0A er: cloudflare..
01D0: 43 46 2D 52 41 59 3A 20 36 65 66 35 38 64 31 36 CF-RAY: 6ef58d16
01E0: 62 39 65 30 30 66 38 65 2D 56 49 45 0D 0A 0D 0A b9e00f8e-VIE....
01F0: 65 72 72 6F 72 20 63 6F 64 65 3A 20 31 30 31 30 error code: 1010
服务器操作员已禁用对订单端点的浏览器完整性检查API。查询现在又开始工作了。我只是不太明白为什么它仍然适用于 JDK15 版本?
非常感谢 Kayaman 的帮助。
我的网络资源有问题。我正在从服务器请求数据。如果我 运行 带有 JDK 15 的程序,则一切正常。当我 运行 带有 JDK 8 的程序时,我从服务器收到错误 403。 我不知道这是否与它有任何关系,但此服务器之前已从 TLS 1.1 切换到 TLS 1.2。据我所知,JDK8 也应该能够使用 TLS 1.2。查询在转换之前有效。
Client restClient = Client.create();
WebResource webResource = restClient.resource(url);
ClientResponse resp = webResource.header("Authorization", "Basic " + authStringEnc)
.get(ClientResponse.class);
if(resp.getStatus() != 200){
System.err.println("Unable to connect to the server. Code " + resp.getStatus());
}
非常感谢您的帮助。
史蒂菲
更新: 谢谢您的帮助。在 运行ning ( -Djavax.net.debug=all) 我收到以下消息:
0000: 48 54 54 50 2F 31 2E 31 20 34 30 33 20 46 6F 72 HTTP/1.1 403 For
0010: 62 69 64 64 65 6E 0D 0A 44 61 74 65 3A 20 4D 6F bidden..Date: Mo
0020: 6E 2C 20 32 31 20 4D 61 72 20 32 30 32 32 20 30 n, 21 Mar 2022 0
0030: 39 3A 30 39 3A 35 31 20 47 4D 54 0D 0A 43 6F 6E 9:09:51 GMT..Con
0040: 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 2F tent-Type: text/
0050: 70 6C 61 69 6E 3B 20 63 68 61 72 73 65 74 3D 55 plain; charset=U
0060: 54 46 2D 38 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 TF-8..Content-Le
0070: 6E 67 74 68 3A 20 31 36 0D 0A 43 6F 6E 6E 65 63 ngth: 16..Connec
0080: 74 69 6F 6E 3A 20 6B 65 65 70 2D 61 6C 69 76 65 tion: keep-alive
0090: 0D 0A 58 2D 46 72 61 6D 65 2D 4F 70 74 69 6F 6E ..X-Frame-Option
00A0: 73 3A 20 53 41 4D 45 4F 52 49 47 49 4E 0D 0A 52 s: SAMEORIGIN..R
00B0: 65 66 65 72 72 65 72 2D 50 6F 6C 69 63 79 3A 20 eferrer-Policy:
00C0: 73 61 6D 65 2D 6F 72 69 67 69 6E 0D 0A 43 61 63 same-origin..Cac
00D0: 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 70 72 69 76 he-Control: priv
00E0: 61 74 65 2C 20 6D 61 78 2D 61 67 65 3D 30 2C 20 ate, max-age=0,
00F0: 6E 6F 2D 73 74 6F 72 65 2C 20 6E 6F 2D 63 61 63 no-store, no-cac
0100: 68 65 2C 20 6D 75 73 74 2D 72 65 76 61 6C 69 64 he, must-revalid
0110: 61 74 65 2C 20 70 6F 73 74 2D 63 68 65 63 6B 3D ate, post-check=
0120: 30 2C 20 70 72 65 2D 63 68 65 63 6B 3D 30 0D 0A 0, pre-check=0..
0130: 45 78 70 69 72 65 73 3A 20 54 68 75 2C 20 30 31 Expires: Thu, 01
0140: 20 4A 61 6E 20 31 39 37 30 20 30 30 3A 30 30 3A Jan 1970 00:00:
0150: 30 31 20 47 4D 54 0D 0A 45 78 70 65 63 74 2D 43 01 GMT..Expect-C
0160: 54 3A 20 6D 61 78 2D 61 67 65 3D 36 30 34 38 30 T: max-age=60480
0170: 30 2C 20 72 65 70 6F 72 74 2D 75 72 69 3D 22 68 0, report-uri="h
0180: 74 74 70 73 3A 2F 2F 72 65 70 6F 72 74 2D 75 72 ttps://report-ur
0190: 69 2E 63 6C 6F 75 64 66 6C 61 72 65 2E 63 6F 6D i.cloudflare.com
01A0: 2F 63 64 6E 2D 63 67 69 2F 62 65 61 63 6F 6E 2F /cdn-cgi/beacon/
01B0: 65 78 70 65 63 74 2D 63 74 22 0D 0A 53 65 72 76 expect-ct"..Serv
01C0: 65 72 3A 20 63 6C 6F 75 64 66 6C 61 72 65 0D 0A er: cloudflare..
01D0: 43 46 2D 52 41 59 3A 20 36 65 66 35 38 64 31 36 CF-RAY: 6ef58d16
01E0: 62 39 65 30 30 66 38 65 2D 56 49 45 0D 0A 0D 0A b9e00f8e-VIE....
01F0: 65 72 72 6F 72 20 63 6F 64 65 3A 20 31 30 31 30 error code: 1010
服务器操作员已禁用对订单端点的浏览器完整性检查API。查询现在又开始工作了。我只是不太明白为什么它仍然适用于 JDK15 版本?
非常感谢 Kayaman 的帮助。