【问题标题】:Getting HTTP 415 error on HttpURLConnection connect在 HttpURLConnection 连接上出现 HTTP 415 错误
【发布时间】:2012-10-04 01:14:11
【问题描述】:

我正在使用以下代码发送 GET 请求,然后接收响应:

try {
  URL url = new URL(strurl);
  HttpURLConnection con = (HttpURLConnection) url.openConnection();

  con.setRequestMethod("GET");
  con.setDoOutput(true);            

  con.connect();

  BufferedReader is = new BufferedReader(new InputStreamReader(con.getInputStream()));
  String line;
  String vAnswerStr="";
  String lineSeparator = System.getProperty("line.separator");

  while ((line = is.readLine()) != null) {
      vAnswerStr = vAnswerStr + line + lineSeparator;
  }
  is.close();
} catch (IOException ex) {
  ex.printStackTrace();
}

strurl 是这样的,虽然我不认为它的格式可能与问题有关:

https://somesite.ru/?arg1=val1&arg2=val2

预期的输出是xml,像这样:

<?xml version="1.0" encoding="UTF-8"?>
<response>
<tag1>00000</tag1>
<tag2>0</tag2>
    ...
</response>

10 次尝试中有 5 次成功。

其他 5 次尝试返回:

java.io.IOException:服务器返回 HTTP 响应代码:415 用于 URL:https://somesite.ru/?arg1=val1&arg2=val2

在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615) 在 sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)

我在 SO 上阅读了几篇关于 HTTP 415 错误的帖子。但他们似乎没有帮助。我尝试了不同的请求属性,但要么没找到,要么没有。

IDE 是 NetBeans 7.0

谁能给我正确的方向来解决这个问题?

编辑

忘了说当从浏览器发出相同的请求时,它在 100% 的尝试中都有效。

【问题讨论】:

  • Expect 标头的用途是什么?似乎不是标准的 http 请求标头,顺便说一句 Content-Type 是响应标头,有什么理由在请求标头列表中使用它?
  • @Vikdor 正在试验...之前发现一些帖子建议这样做..
  • 编辑了问题,删除了错误的标题

标签: java httpurlconnection http-status-code-415


【解决方案1】:

你应该检查的几件事:

  1. 如果您有权访问服务器,它会记录任何内容吗?
  2. 目的地支持哪些内容类型?您可能应该指定内容类型,以便远程服务器知道您发送的内容:

    con.setRequestProperty("Content-Type", "text/html; charset=utf-8");

  3. 您可能需要对文本进行编码 - 查看 Java 的 URLEncoder

【讨论】:

  • 最终问题出在服务器上。尽管我们与之通信的服务器提供者拒绝解释其本质,但在 out java 应用程序中没有什么可做的。所以,我从这篇文章中得到的最接近的想法是你的第 1 点。无论如何,谢谢!
  • 我遇到了同样的错误(415),我想补充第四点,以防一些沮丧的程序员碰到这篇文章:(4)检查服务器的“web.xml”文件。有可能您已经为 JSON/xml 功能添加了库(例如 Jackson),但您忘记设置依赖项。这也可能导致 415 错误。
猜你喜欢
  • 1970-01-01
  • 2015-09-14
  • 2013-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多