当前位置: 首页 > 面试题库 >

读取输入后无法写入输出

辛渝
2023-03-14
问题内容

我正在编写一个连接到servlet的程序,这要感谢a,HttpURLConnection但是我在检查url时卡住了

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协议基于请求-响应模式:首先发送请求,然后服务器响应。服务器响应后,您将无法再发送任何内容,这将毫无意义。(服务器如何 知道要发送的内容
之前 给您响应代码?)

因此,当您致电时server.getResponseCode(),您可以有效地告诉服务器您的请求已完成并且可以处理它。如果要发送更多数据,则必须启动一个新请求。

查看您的代码,您想检查连接本身是否成功,但是没有必要:如果连接不成功,Exception则抛出server.connect()。但是,连接尝试的结果与HTTP响应代码不同,HTTP响应代码总是在服务器处理完所有输入之后出现。



 类似资料:
  • 问题内容: 我一周前开始使用Java,现在我想在窗口中插入一个图像。无论我尝试什么,我都会在Eclipse中继续使用它: javax.imageio.IIOException:无法读取输入文件! } 我认为代码很容易解释。我试图解决这个问题 我想做的是一个桌面程序,我的源代码存储如下:training / src / graphics / Window training / src / src /

  • 问题内容: 我对Logstash有一个奇怪的问题。我正在提供一个日志文件作为logstash的输入。配置如下: 我已经在运行elasticsearch服务器并验证是否正在使用curl查询接收数据。问题是,当输入为时,没有数据被接收。但是,如果我将输入更改为以下内容,它将顺利发送所有输入数据: 我不明白我要去哪里错了。有人可以看看这个吗? 问题答案: 您应该在文件部分下设置start_positio

  • 问题内容: 这是我的第一篇文章,请问如果我做错了什么。直到我尝试从源包中读取图像,此代码才能正常运行。但是现在它无法读取任何图像。我究竟做错了什么?还是关于日食的事? 例外: 谢谢… 问题答案: 改变了,如果你使用的是Windows。 更跨平台的方法将替代 对于每对。 进一步了解File api文档 编辑 (对不起,我没有读过此行) 这段代码运行正常,直到我尝试从源包中读取图像 为了从jar包中获

  • 问题内容: 我不知道为什么这不起作用,但是程序说它无法读取输入文件。顺便说一下,这也在Ubuntu中运行: 这是示例代码: 该目录也位于程序的bin文件夹和src文件夹中。 问题答案: 如果您改为从资源流中获取图像怎么办?例如,

  • 我尝试使用getch()和kbsit()读取用户的输入,但它似乎无法识别按键被按下。 此代码打印“开始”,按下键时不打印任何内容。使用getch()读取和打印哪怕一个字符,而不使用循环,我都不走运。

  • 我目前正试图从服务器读取图像文件,但得到的数据不完整或 这与缓冲区大小有关吗?我已经尝试使用静态大小而不是ContentLength。敬请指教。