【发布时间】:2014-04-27 16:26:30
【问题描述】:
我正在尝试从 C# 中的 WS 中取回一些数据,但出现此错误:
您必须在调用 [Begin]GetResponse 之前将 ContentLength 字节写入请求流。
这是我正在尝试使用的代码:
var json = new JavaScriptSerializer().Serialize(order);
string jsonResponseToString = "";
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create("https://myurl.com");
request.Method = "POST";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(json);
request.ContentLength = byteArray.Length;
request.ContentType = @"application/json";
try
{
using (var response = (HttpWebResponse)request.GetResponse())
{
Stream str = response.GetResponseStream();
var sr = new StreamReader(str, encoding);
jsonResponseToString = sr.ReadToEnd();
var result = new OrderResult();
result = new JavaScriptSerializer().Deserialize<OrderResult>(jsonResponseToString);
if (str != null)
{
str.Flush();
str.Close();
}
}
}
catch (WebException ex)
{
//
}
错误发生在这一行:
using (var response = (HttpWebResponse)request.GetResponse())
我该如何解决这个问题,我做错了什么?
【问题讨论】:
-
使用
HttpClient;好多了。
标签: c# asp.net json rest webclient