C# HttpWebRequest、重定向、实时站点上的分块编码错误,但在本地IIS Express中有效
我有一些代码,可以用C#创建一个HTTP POST WebRequest,并将一些数据发布到https站点。然后该站点重定向到一个新的URL并返回一些数据 这在我运行IIS Express的本地计算机上运行得很好,但在我的生产服务器上抛出一个异常,即不能为不写入数据的操作设置C# HttpWebRequest、重定向、实时站点上的分块编码错误,但在本地IIS Express中有效,c#,redirect,httpwebrequest,chunked-encoding,C#,Redirect,Httpwebrequest,Chunked Encoding,我有一些代码,可以用C#创建一个HTTP POST WebRequest,并将一些数据发布到https站点。然后该站点重定向到一个新的URL并返回一些数据 这在我运行IIS Express的本地计算机上运行得很好,但在我的生产服务器上抛出一个异常,即不能为不写入数据的操作设置内容长度或分块编码。 这是代码的样子: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AllowAutoRedirect =
内容长度或分块编码。
这是代码的样子:
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);
你知道哪里不对吗?好的解决方案是什么
//约翰我也有类似的问题。在生产中,所有url都自动重定向到https。HttpWebRequest似乎无法处理重定向并抛出此异常消息。我确信您不需要设置ContentLength。试着把那条线取出来。它是不需要的,但我还是犯了同样的错误。甚至尝试设置SendChunked=false。也许在生产环境中,您的数据字节数组是空的?