我有一個關於創建httpurlconnection(或httpsurlconnection)的問題。實際上這是關於在投射url.openconnection之後設置連接標頭。在運行相同代碼之前,現在不運行。我無法理解。 (例外:已經連接...或者像..)關於android上的HttpURLConnections的問題。 (cast-URLConnection,url.openConnection,getOutPutStream()..)
有時它運行到httpConn.getOutPutStream();此時它給出錯誤「java.net.ProtocolException:OutputStream不可用,因爲請求標頭已經發送!」
我的錯在哪裏?
之前我使用的代碼:所有代碼是here(我有一個問題關於This Code,太)
URL url = new URL(getUrl());
URLConnection conn = url.openConnection();
HttpURLConnection httpConn=(HttpURLConnection)conn; /*or HttpsURLConnection*/
httpConn.set...
...
httpConn.connect();
...
我嘗試鑄造後設置一些設置,但結果是一樣的。 conn.set ..的在工作,但鑄造我不能設置任何後...
改變的代碼:
URL url = new URL(getUrl());
conn = url.openConnection();
conn.setAllowUserInteraction(false);
conn.setConnectTimeout(10000);
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type",
"text/xml; charset=utf-8");
conn.setRequestProperty("SOAPAction",
"http://tempuri.org/IAuthenticationServiceNew/Authenticate");
conn.setRequestProperty("Software-Version", AppData.VERSION);
conn.setDoOutput(true);
httpConn = (HttpsURLConnection) conn;
httpConn.setChunkedStreamingMode(getParams().getBytes("UTF8").length);
httpConn.setInstanceFollowRedirects(true);
httpConn.connect();
os = httpConn.getOutputStream();
os.write(getParams().getBytes("UTF8"));