通过Visual Studio C#代码放置的HttpWebRequest帖子没有突然收到cookie
我们公司有一个通用的框架,在这个框架中,我们传递用户名、密码、url并取回cookie。它为我工作了很长一段时间,突然它停止了工作。我的队友能够顺利地获得cookie,没有任何问题。下面是我们用来取回cookie的常用函数。请帮我完成故障排除通过Visual Studio C#代码放置的HttpWebRequest帖子没有突然收到cookie,c#,.net,cookies,httpwebrequest,getresponse,C#,.net,Cookies,Httpwebrequest,Getresponse,我们公司有一个通用的框架,在这个框架中,我们传递用户名、密码、url并取回cookie。它为我工作了很长一段时间,突然它停止了工作。我的队友能够顺利地获得cookie,没有任何问题。下面是我们用来取回cookie的常用函数。请帮我完成故障排除 public static CookieContainer GetAvidAuthCookies(string url, string userName, string password, bool allowAutoRedirect = false) {
public static CookieContainer GetAvidAuthCookies(string url, string userName, string password, bool allowAutoRedirect = false)
{
HttpWebRequest req = null;
HttpWebResponse resp = null;
CookieContainer cookieContainer = new CookieContainer();
req = (HttpWebRequest) WebRequest.Create(url);
req.CookieContainer = cookieContainer;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
// req.ContentType = "text/xml;charset=UTF-8"; //for SOAP
req.Timeout = 30000;
req.AllowAutoRedirect = allowAutoRedirect;
req.AllowWriteStreamBuffering = true;
req.Referer = url;
//req.Host = "api.avidxchange.net";
req.Headers["Authorization"] = "Basic " +
Convert.ToBase64String(
System.Text.Encoding.ASCII.GetBytes(userName + ":" + password));
var request = Common.GetMemoryStream("username=" + userName + "&password=" + password + "&submit=");
if (request != null)
{
req.ContentLength = request.Length;
Stream sw = req.GetRequestStream();
byte[] buffer = new byte[1024];
int bytesRead = 0;
request.Position = 0;
while ((bytesRead = request.Read(buffer, 0, buffer.Length)) != 0)
{
sw.Write(buffer, 0, bytesRead);
}
request.Flush();
request.Close();
sw.Flush();
sw.Close();
}
try
{
resp = (HttpWebResponse) req.GetResponse();
}
catch (WebException we)
{
resp = (HttpWebResponse) we.Response;
Debug.WriteLine("Response:" + we.InnerException + "\r\n" + resp.StatusCode + ":" +
new StreamReader(we.Response.GetResponseStream()).ReadToEnd());
var responseStream = we.Response.GetResponseStream();
if (responseStream != null) responseStream.Position = 0;
}
var rStream = resp.GetResponseStream();
var responseText = new StreamReader(rStream).ReadToEnd();
var t = resp.Cookies;
return cookieContainer;
}
不确定我的电脑是否有阻止接收Cookie的安全设置。如果是这样,请帮助检查“突然停止工作”的位置。您能花点时间描述一下这是什么意思吗?例如,该操作超时、抛出异常、返回403状态代码等。正在进行GetResponse()调用。然而,responseText也会随着相应的Cookie变空。我过去常常更早地获得cookie,并且能够使用多次收到的cookie运行后续测试。我不知道中间发生了什么,因为我现在没收到,你收到了吗?是200吗?我想你需要弄清楚为什么你得到的是302而不是200。302状态表示您正在被重定向。