0
我有一段Java代码打开一个HTTP连接,在其上写入数据,然后检索响应代码。因为connectin很好,所以它应该得到HTTP_OK(即200),但它的回报是1。为什么HttpURLConnection.getResponseCode()返回1?
这是莫名其妙的,因为1在Http Response代码规范中没有任何地方出现。任何人都可以对潜在问题区域提出一些想法吗?
以下是一段代码:
URL tempURL = new URL("http://www.google.com");
obj_URLHttpConnectionServlet = (HttpURLConnection)tempURL.openConnection();
obj_URLHttpConnectionServlet.setDoInput(true);
obj_URLHttpConnectionServlet.setDoOutput(true);
OutputStream obj_OutputStream = obj_URLHttpConnectionServlet.getOutputStream();
obj_OutputStream.write(sConfigurationData.getBytes());
obj_OutputStream.flush();
obj_OutputStream.close();
obj_OutputStream = null;
int iResponseCode = obj_URLHttpConnectionServlet.getResponseCode();
System.out.println("Response code received is : " + iResponseCode);
输出接收
响应代码是:1
这是可能的服务器来改变HTTP反应代码?在其他环境和同一台服务器上的相同代码运行良好并返回200 – Tushu 2010-09-10 13:34:17
在servlet类中,可以通过'response.setStatus(1)'轻松实现。网络服务器也可以这样做,细节取决于制造/版本。可以肯定的是,使用像Fiddler这样的HTTP监视工具来排除这个或那个(如果它显示1,那么它是服务器,否则它是客户端)。 – BalusC 2010-09-10 13:53:05
好的,但仍然有一个大问题,即同一台服务器如何为两个相同的代码(在不同的环境中运行)返回不同的响应代码? – Tushu 2010-09-10 13:56:47