gpt4 book ai didi

java.net.ProtocolException : Cannot write output after reading input

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:40 26 4
gpt4 key购买 nike

我正在尝试将对象从小程序发送到 struts 操作类使用对象输出流,但它给了我一个异常java.net.ProtocolException:读取输入后无法写入输出。

我创建了一个新的 URLConnection 实例来提供特定的 url并尝试在 url 中写入对象以从小程序发送 struts 操作类

我在小程序的保存按钮单击时调用此方法

公共(public)保存设计() {

    try
{

HttpURLConnection urlConnection = getServletConnection(CallServletConnection.SAVE_DESIGN, null);
// Pragma = no-cache; should be null

if(urlConnection != null && urlConnection.getHeaderFields().get("Pragma") != null)
return false;





OutputStream outstream = urlConnection.getOutputStream();//Exception occur here

ObjectOutputStream objectoutstream = new ObjectOutputStream(outstream);

objectoutstream.writeObject("abc");
objectoutstream.flush();
objectoutstream.close();
System.out.println("vctObjectDetails is write ");


}
catch (MalformedURLException exception) {
exception.printStackTrace();
}
catch(ConnectException exception) {
exception.printStackTrace();
}
catch (IOException exception) {
exception.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}


}

但它不起作用。如果有人知道如何处理此异常,请给我一些提示。

最佳答案

这一切都与 HTTP 请求的生命周期有关(这是 HttpURLConnection 抽象的内容) - 一旦发送请求,您就无法进一步修改它 - 如果您有更多数据要发送,您只需发送另一个数据。下面发生的事情是,一旦您调用 getHeaderFields() (响应 header 字段),“HttpURLConnection”就会发送请求并使响应可用。

我不知道“getServletConnection()”中的内容,但您可以尝试使用 'doOutput()'并且在完成对请求的写入之前不读取响应。

关于java.net.ProtocolException : Cannot write output after reading input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15652994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com