如何解决c#http发布在webresponse中没有任何响应
| 这是我的请求和响应代码。System.IO.MemoryStream xmlStream = null;
HttpWebRequest HttpReq = (HttpWebRequest)WebRequest.Create(url);
xmlStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(format));
byte[] buf2 = xmlStream.ToArray();
System.Text.UTF8Encoding UTF8Enc = new System.Text.UTF8Encoding();
string s = UTF8Enc.GetString(buf2);
string sPost = \"XMLData=\" + System.Web.HttpUtility.UrlDecode(s);
byte[] bPostData = UTF8Enc.GetBytes(sPost);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = \"application/x-www-form-urlencoded\";
HttpReq.Timeout = 30000;
request.Method = \"POST\";
request.KeepAlive = true;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(bPostData,bPostData.Length);
requestStream.Close();
}
string responseString = \"\";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
responseString = sr.ReadToEnd();
}
此代码没有崩溃。 \“ format \”字符串是其中包含XML的字符串。最后,当您尝试查看ѭ1中的内容时,它是一个空字符串。我应该看到从URL发回的XML。这段代码中缺少什么吗?
解决方法
我建议简化此凌乱的代码:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ \"XMLData\",format }
};
byte[] resultBuffer = client.UploadValues(url,values);
string result = Encoding.UTF8.GetString(resultBuffer);
}
如果要直接在POST正文中上传XML,则不应使用application/x-www-form-urlencoded
作为内容类型。您可能应该指定正确的内容类型,如下所示:
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = \"text/xml\";
var data = Encoding.UTF8.GetBytes(format);
byte[] resultBuffer = client.UploadData(url,data);
string result = Encoding.UTF8.GetString(resultBuffer);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。