0
我正在嘗試從SOAP SOAP Api讀取響應,並在foreach循環的第二次運行中得到Stream was not writable
錯誤。在list ArrayList
中的第一個值按預期工作,但第二個值在Stream was not writable
行上表示Stream was not writable
。我究竟做錯了什麼?流不可寫
WebRequest webRequest = WebRequest.Create("https://www.api.com/v2.0/xml/");
HttpWebRequest httpRequest = (HttpWebRequest)webRequest;
httpRequest.Method = "POST";
httpRequest.ContentType = "text/xml; charset=utf-8";
httpRequest.ProtocolVersion = HttpVersion.Version11;
httpRequest.Credentials = CredentialCache.DefaultCredentials;
Stream requestStream = httpRequest.GetRequestStream();
StreamWriter streamWriter = new StreamWriter(requestStream, Encoding.ASCII);
StringBuilder soapRequest;
foreach (var bol in list) {
oRequest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
oRequest = oRequest + "<file>";
oRequest = oRequest + "<IntDocNumber>" + bol + "</IntDocNumber>";
oRequest = oRequest + "</file>";
soapRequest = new StringBuilder(oRequest);
streamWriter = new StreamWriter(requestStream, Encoding.ASCII);
streamWriter.Write(soapRequest.ToString());
streamWriter.Close();
//Get the Response
HttpWebResponse wr = (HttpWebResponse)httpRequest.GetResponse();
StreamReader srd = new StreamReader(wr.GetResponseStream());
string resulXmlFromWebService = srd.ReadToEnd();
XmlDocument xml = new XmlDocument();
xml.LoadXml(resulXmlFromWebService);
XmlNodeList xnList = xml.SelectNodes("/root/data/item");
}
我會嘗試在foreach循環中聲明StreamWriter,如果可以的話您的解決方案 –
我這樣做了。結果是一樣的 –
您不能在多個請求中重複使用相同的請求對象。你只需要創建一個新的:) – Luaan