HttpWebRequest,重定向,实时站点上的分块编码错误,但在本地工作i IIS Express

本文关键字:Express IIS 错误 工作 编码 站点 实时 重定向 HttpWebRequest | 更新日期: 2023-09-27 18:33:55

我有一些代码可以使用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

HttpWebRequest,重定向,实时站点上的分块编码错误,但在本地工作i IIS Express

我也有类似的问题。在生产中,所有网址都会自动重定向到 https。似乎HttpWebRequest无法处理重定向并抛出此异常消息。