Wenn ich dieses Stück Code:Veröffentlichen von XML als Zeichenfolge in Java, wann die Verbindung zu spülen und zu schließen?
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();
Muss ich dann müssen noch die Verwendung:
con.getOutputStream().flush();
con.getOutputStream().close();
Da Wenn ich die flush
und close
vor dem Eingabeleser verwenden, dann werde ich nicht erhalten jede Eingabe. Aber wenn ich die Flush und das Schließen unter dem Inputreader (am Ende des Stücks Code) dann bekomme ich diesen Fehler:
java.net.ProtocolException: Kann nicht schreiben, nach dem Lesen der Eingabe.
bündig sicher Daten linken Puffer zu machen, nicht um den Strom zu schließen, bis Sie absolut fertig sind. – zubergu
nicht verwandt, aber warum URLEncode ein XML-Dokument? – Henry