gpt4 book ai didi

Java HttpURLConnection 请求抛出 IOException 和无效的 Http 响应

转载 作者:可可西里 更新时间:2023-11-01 17:06:07 24 4
gpt4 key购买 nike

我正在使用 Java 8 发出 POST 请求,如下所示:

URL url = new URL("http://target.server.com/doIt");
URLConnection connection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) connection;

byte[] soapBytes = soapRequest.getBytes();
httpConn.setRequestProperty("Host", "target.host.com");
httpConn.setRequestProperty("Content-Length", soapBytes.length+"");
httpConn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8");
httpConn.setRequestMethod("POST");
httpConn.setConnectTimeout(5000);
httpConn.setReadTimeout(35000);
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
OutputStream out = httpConn.getOutputStream();
out.write(soapBytes);
out.close();

int statusCode;
try {
statusCode = httpConn.getResponseCode();
} catch (IOException e) {
InputStream stream = httpConn.getErrorStream();
if (stream == null) {
throw e;
} else {
// this never happens
}
}

我的 soap 请求包含文档 ID,目标服务器(托管我不拥有或无权访问的第三方服务)返回与提供的 ID 匹配的 PDF 文档。

大多数时候,服务器会返回一个 PDF 文档,偶尔当文档不可用时状态代码为 500。但是,有时对 getResponseCode() 的调用会抛出带有“无效 Http 响应”的 IOException。

我认为无论发生什么情况,服务器总会返回一些响应代码。

  • 这是否意味着服务器正在返回完全没有的垃圾匹配 HTTP 响应的预期格式?
  • 有没有办法获得有关实际响应的更多信息?
  • 有没有办法检索原始文本响应(如果有)?

最佳答案

正如 AxelH 所指出的,与远程服务器连接时一定有问题,在这种情况下,您无法获得有效响应。

如果您在测试环境中,您可以在 TCP 级别(而不是在 HTTP 级别)监控连接:在您的客户端和远程服务器之间放置一个监控器,监控所有交换的 TCP 流量两个同龄人之间。如果您使用的是 Eclipse,则可以创建一个 TCP 监视器

关于Java HttpURLConnection 请求抛出 IOException 和无效的 Http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com