我正在编写一个连接到 servlet 的程序,这要归功于HttpURLConnection
但我在检查网址时卡住了
public void connect (String method) throws Exception {
server = (HttpURLConnection) url.openConnection ();
server.setDoInput (true);
server.setDoOutput (true);
server.setUseCaches (false);
server.setRequestMethod (method);
server.setRequestProperty ("Content-Type", "application / xml");
server.connect ();
/*if (server.getResponseCode () == 200)
{
System.out.println ("Connection OK at the url:" + url);
System.out.println ("------------------------------------------- ------- ");
}
else
System.out.println ("Connection failed");
}*/
我收到错误:
java.net.ProtocolException:读取输入后无法写入输出。
如果我用注释中的代码检查网址,但没有它它也可以完美工作
不幸的是,我需要检查网址,所以我认为问题来自getResponseCode
方法但是不知道怎么解决
非常感谢
HTTP 协议基于请求-响应模式:您首先发送请求,然后服务器响应。一旦服务器响应,你就不能再发送任何内容,这是没有意义的。 (服务器怎么会给你一个响应代码before它知道您要发送什么?)
所以当你打电话时server.getResponseCode()
,您有效地告诉服务器您的请求已完成并且可以处理它。如果你想发送更多数据,你必须开始一个新的请求。
查看您的代码,您想要检查连接本身是否成功,但没有必要这样做:如果连接不成功,则会出现Exception
被抛出server.connect()
。但连接尝试的结果与 HTTP 响应代码不同,HTTP 响应代码始终在服务器处理完您的所有输入之后出现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)