Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HttpURLConnection上获取HTTP 415错误_Java_Httpurlconnection_Http Status Code 415 - Fatal编程技术网

Java 在HttpURLConnection上获取HTTP 415错误

Java 在HttpURLConnection上获取HTTP 415错误,java,httpurlconnection,http-status-code-415,Java,Httpurlconnection,Http Status Code 415,我使用以下代码发送GET请求,然后接收响应: try { URL url = new URL(strurl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setDoOutput(true); con.connect(); BufferedReader is = new BufferedRe

我使用以下代码发送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
是这样的smth,尽管我不认为它的格式可能与问题有关:

预期输出为xml,smth如下所示:

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

00000
0
...
10次尝试中有5次成功

其他5次尝试返回:

java.io.IOException:服务器返回了URL的HTTP响应代码:415:

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

我已经读了好几篇关于HTTP 415错误的文章。但他们似乎没有帮助。我尝试过不同的请求属性,但要么找不到,要么不是这样

IDE是NetBeans 7.0

谁能告诉我解决这个问题的正确方向吗

编辑


忘了说当从浏览器执行相同的请求时,它在100%的尝试中工作。

您应该检查以下几点:

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

    con.setRequestProperty(“内容类型”,“文本/html;字符集=utf-8”)

  • 您可能需要对文本进行编码——看看Java的URLEncoder


  • Expect
    标题的用途是什么?似乎不是一个标准的http请求头,顺便说一句,内容类型是一个响应头,在请求头列表中使用它有什么原因吗?@Vikdor正在试验…之前发现一些帖子建议这样做..编辑了问题,删除了不正确的头在问题最后出现在服务器上。尽管提供商拒绝解释其本质,我们与之通信的服务器,但在我们的java应用程序中没有什么可做的。因此,我从这篇文章中得到的最接近的想法是你的观点1。无论如何,谢谢!我也有同样的错误(415),我想补充第四点,以防一些沮丧的程序员偶然发现这篇文章:(4)检查服务器的“web.xml”文件。您可能已经添加了JSON/xml功能库(例如Jackson),但忘记设置依赖项。这也可能导致415错误。