我有一些代码用C#创建HTTP POST WebRequest并将一些数据发布到https站点。该站点然后重定向到新的URL并返回一些数据。
这在运行IIS Express的本地计算机上运行正常,但在我的生产服务器上抛出一个Content-Length or Chunked Encoding cannot be set for an operation that does not write data.
的异常。
这就是代码的样子:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
request.UserAgent = userAgent;
StreamWriter stOut = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
stOut.Write(data);
stOut.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (StreamReader stIn = new StreamReader(request.GetResponse().GetResponseStream()))
{
string responseHtml = stIn.ReadToEnd();
Uri downloadUri = GetDownloadUri(responseHtml);
return downloadUri;
}
}
throw new HttpException((int)response.StatusCode, response.StatusDescription);
任何想法有什么不对,什么是好的解决方案?
// Johan
答案 0 :(得分:0)
我有类似的问题。在制作中,所有网址都会自动重定向到https。似乎HttpWebRequest无法处理重定向并抛出此异常消息。