我有一个Windows应用程序,我正在尝试构建模拟上传到Web应用程序。该项目在C#3.0中。
使用Fiddler时,我可以看到以下内容
/登录页面 - 200代码
输入pwd / uname
/主页 - 302代码 /主页 - 200代码
/上传页面[此页面包含简单的多部分表单帖子,用户可以选择最多2个文件上传] - 200个代码
/ fileprocessed page - 302 code / fileprocessed page - 200 code
当我使用HttpWebrequest和webresponse对象时,我得到了
/登录页面 - 200代码
输入pwd / uname
/主页 - 200代码
/上传页面[此页面包含简单的多部分表单帖子,用户可以选择最多2个文件上传] - 200个代码
/ fileprocessed page - 302 code
我确实将SetAutoRedirect设为true
我的代码是
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Write(buffer, 0, buffer.Length);
FileStream stream2 = new FileStream(filePath, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[0x1000];
int count = 0;
while ((count = stream2.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, count);
}
bytes = Encoding.ASCII.GetBytes("\r\n--" + str2 + "--\r\n");
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
stream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
if(response.StatusCode == HttpStatusCode.Found)
{
string newURL = response.Headers["Location"];
}
如何避免302错误或如何解决错误,其中我可以成功发布表单以模拟上传
答案 0 :(得分:1)
我有一个类似的案例,当我预计会返回200个时,我收到了302个状态代码(比如在Fiddle或Firebug:net标签中)。我能够通过向HttpWebResponse
提供用户代理规范来解决问题request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0";