我正在使用C#应用程序调用SOAP Web服务。问题是我收到的响应是二进制而不是文本(应该是),我尝试从SoapUI调用,响应是text / xml,我还做了一个Wireshark捕获(从C#应用程序测试时),它显示(可扩展标记语言选项卡)响应实际上是text / xml。
string RequestTemplate = "XML REQUEST....";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(URL));
request.Headers.Add("Accept-Encoding", "gzip,deflate");
request.Headers.Add("SOAPAction", "THEACTION");
request.ContentType = "text/xml;charset=utf-8";
request.Host = "1.2.3.4";
request.KeepAlive = true;
request.Timeout = 1000000000;
request.Accept = "text/xml";
request.Method = "POST";
request.ContentLength = RequestTemplate.Length;
request.Expect = "";
request.ServicePoint.Expect100Continue = false;
ServicePointManager.ServerCertificateValidationCallback = delegate (Object obj, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
{
return true;
};
ServicePointManager.MaxServicePointIdleTime = 100000;
using (Stream stm = request.GetRequestStream())
{
using (StreamWriter stmw = new StreamWriter(stm))
{
stmw.Write(RequestTemplate);
}
}
using (StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream()))
{
string resultString = responseReader.ReadToEnd();
Console.WriteLine(resultString);
}
更新:
回复的一个例子:http://pastebin.com/iNjEKnuy
响应标头:http://pastebin.com/ZH1UQu3X