Soap 响应被截断(SoapUi returns 正确响应)
Soap response truncated (SoapUi returns correct response)
实际上我得到了截断的 soap 响应。 SoapUI returns 响应未被截断,所以我认为问题出在我检索响应的方式中。
这就是我得到回复的方式。
请求的类型为 HttpWebRequest
...
using (WebResponse Serviceres = request.GetResponse())
{
using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream()))
{
string ServiceResult = rd.ReadToEnd();
...
...
...
}
}
...
"ServiceResult"中的字符串终于被截断了。也许 StreamReader 是问题所在?
终于找到原因了
我必须定义一个编码并将其传递给 StreamReader 构造函数
Encoding enc = Encoding.GetEncoding("utf-8");
...
using (WebResponse Serviceres = request.GetResponse())
{
using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream(), enc))
{
string ServiceResult = rd.ReadToEnd();
...
...
...
}
}
...
之后我得到了完整的回复。
实际上我得到了截断的 soap 响应。 SoapUI returns 响应未被截断,所以我认为问题出在我检索响应的方式中。
这就是我得到回复的方式。
请求的类型为 HttpWebRequest
...
using (WebResponse Serviceres = request.GetResponse())
{
using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream()))
{
string ServiceResult = rd.ReadToEnd();
...
...
...
}
}
...
"ServiceResult"中的字符串终于被截断了。也许 StreamReader 是问题所在?
终于找到原因了
我必须定义一个编码并将其传递给 StreamReader 构造函数
Encoding enc = Encoding.GetEncoding("utf-8");
...
using (WebResponse Serviceres = request.GetResponse())
{
using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream(), enc))
{
string ServiceResult = rd.ReadToEnd();
...
...
...
}
}
...
之后我得到了完整的回复。