gpt4 book ai didi

java - 在Java中将XML作为字符串发布,何时刷新并关闭连接?

转载 作者:行者123 更新时间:2023-12-02 13:09:01 25 4
gpt4 key购买 nike

如果我有这段代码:

StringBuilder postData = new StringBuilder();
postData.append(URLEncoder.encode(cxmlContent, "UTF-8"));
byte[] postDataBytes = postData.toString().getBytes("UTF-8");

URL url = new URL(urlString);
URLConnection con = url.openConnection();
// specify that we will send output and accept input
con.setDoInput(true);
con.setDoOutput(true);
con.setConnectTimeout(20000); // long timeout, but not infinite
con.setReadTimeout(20000);
con.setUseCaches(false);
con.setDefaultUseCaches(false);
// tell the web server what we are sending
con.setRequestProperty("Content-Type", "text/xml; charset=utf-8" );
con.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));

con.getOutputStream().write(postDataBytes);

// reading the response
InputStreamReader reader = new InputStreamReader(con.getInputStream());
StringBuilder buf = new StringBuilder();
char[] cbuf = new char[ 2048 ];
int num;
while ( -1 != (num=reader.read( cbuf )))
{
buf.append( cbuf, 0, num );
}
String result = buf.toString();

那么我还需要使用:

con.getOutputStream().flush();
con.getOutputStream().close();

因为如果我在 inputreader 之前使用 flushclose,那么我将不会收到任何输入。但是如果我在输入读取器下方使用刷新和关闭(在代码段的末尾),那么我会收到此错误:

java.net.ProtocolException:读取输入后无法写入输出。

最佳答案

Close()

调用也是flush()方法。所以你实际上只需要同时调用 close 和两者,因为它们是多余的。您没有收到数据,因为您对连接流应用了关闭。我建议使用从流创建的 Outputstreamwriter 和 Bufferedwriter。

类似这样的事情:

    OutputStreamWriter out = new OutputStreamWriter( connection.getOutputStream()); 
out.write("string=" + stringToReverse);
out.close();
BufferedReader in = new BufferedReader( new InputStreamReader( connection.getInputStream()));
String decodedString; while ((decodedString = in.readLine()) != null) { System.out.println(decodedString); } in.close();

关于java - 在Java中将XML作为字符串发布,何时刷新并关闭连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44039585/

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