【发布时间】:2017-06-20 12:51:40
【问题描述】:
我一直在阅读无数与我的问题相关的问题,但没有一个能解决我的问题。我在 c# 中创建一个 HttpWebRequest,在其中发布数据然后读取响应,但响应始终返回为空白。我尝试更改request.contentType,以未编码、ASCII 和 UTF8 的各种格式对数据进行编码。不管我做什么,我的回答都是空白的。另外作为旁注,我的请求正在通过第 7 层。
var request = (HttpWebRequest)WebRequest.Create(serviceURL);
var postData = "\"device\"=\"9856\"";
var data = Encoding.ASCII.GetBytes(postData);
//request.ContentType = "application/x-www-form-urlencoded";
request.ContentType = "application/json; charset=utf-8";
request.Timeout = 5000;
request.Headers.Add("Authorization", b64);
request.Headers.Add("reqtime", hmacTS);
request.Headers.Add("appkey", APP_KEY1);
request.Method = "POST";
request.ContentLength = data.Length;
try
{
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
updateWindow(this, "Results: " + result);
updateWindow(this, "Type: " + response.ContentType);
updateWindow(this, "Content Length: " + response.ContentLength);
}
}
catch (WebException a)
{
updateWindow(this, "ERROR: " + a);
}
我的回复显示为:
Results:
Type: application/octet-stream
Content Length: 0
只是为了更新大家,我终于找到了问题的根源。由于数据库连接中断,服务提供商不得不重新启动他们的服务器。经过大约一周的与此代码的斗争,我猜他们最终决定为我检查.....感谢所有试图提供帮助的人!
【问题讨论】:
-
您是否尝试过使用 Fiddler 之类的工具来实际查看您通过网络发送和接收的内容?
-
是的,我一直在使用提琴手,而且身体似乎是正确的。提琴手也没有显示任何交易异常。
-
我在提琴手中看不到响应体。显然我没有得到任何回报.. Content-Length: 0, Content-Type: application/octet-stream
-
威尔斯先生有什么有用的建议吗?
-
当您尝试来自 Postman 的相同 POST 时,您是否得到空响应? chrome.google.com/webstore/detail/postman/…
标签: c# asp.net web-services httpwebrequest