C# HttpWebRequest 一个图片URL的怎么获取不到COOKIE下面附加的代码,GET方式获取流,我用网也抓包的工具可以看 COOKIE例如:url http://avatar.profile.csdn.net/C/D/A/2_my_web.jpg
抓包的工具可以看这个图片的COOKIE但是用下面程序就获取不到,在线等
/// <summary>
/// GET 方式获取流
/// </summary>
/// <param name="uri"></param>
/// <param name="sCookie"></param>
/// <returns></returns>
public Stream webGetStream( string uri,string sCookie)
{
Stream stream = null; HttpWebRequest myRequest= (HttpWebRequest)WebRequest.Create(uri);
myRequest.Method = "GET";
myRequest.ContentType = "image/jpeg";
myRequest.Accept = "*/*";
myRequest.AllowAutoRedirect = true;
myRequest.Timeout = 1000*30; CookieContainer cookieCon = new CookieContainer();
myRequest.CookieContainer = cookieCon; if( sCookie!=null || sCookie != "" )
{
string delimStr = ";";
string [] arrList=null;
char [] delimiter = delimStr.ToCharArray();
arrList=sCookie.Split(delimiter);
if (arrList.Length > 0)
{
foreach (string cookieI in arrList)
{
myRequest.CookieContainer.SetCookies(new Uri(uri), cookieI);
} }
else
{
myRequest.CookieContainer.SetCookies(new Uri(uri), sCookie);
} }
else
{
myRequest.CookieContainer.SetCookies( new Uri( uri ) ,sCookie );
}
myRequest.UserAgent=" Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)";
myRequest.KeepAlive = true;
try
{
HttpWebResponse myResponse = ( HttpWebResponse )myRequest.GetResponse();
stream = myResponse.GetResponseStream();
this.myCookies = myRequest.CookieContainer.GetCookieHeader( new Uri( uri ) );
}
catch (Exception e)
{
Console.WriteLine(e.Message); }
return stream;
抓包的工具可以看这个图片的COOKIE但是用下面程序就获取不到,在线等
/// <summary>
/// GET 方式获取流
/// </summary>
/// <param name="uri"></param>
/// <param name="sCookie"></param>
/// <returns></returns>
public Stream webGetStream( string uri,string sCookie)
{
Stream stream = null; HttpWebRequest myRequest= (HttpWebRequest)WebRequest.Create(uri);
myRequest.Method = "GET";
myRequest.ContentType = "image/jpeg";
myRequest.Accept = "*/*";
myRequest.AllowAutoRedirect = true;
myRequest.Timeout = 1000*30; CookieContainer cookieCon = new CookieContainer();
myRequest.CookieContainer = cookieCon; if( sCookie!=null || sCookie != "" )
{
string delimStr = ";";
string [] arrList=null;
char [] delimiter = delimStr.ToCharArray();
arrList=sCookie.Split(delimiter);
if (arrList.Length > 0)
{
foreach (string cookieI in arrList)
{
myRequest.CookieContainer.SetCookies(new Uri(uri), cookieI);
} }
else
{
myRequest.CookieContainer.SetCookies(new Uri(uri), sCookie);
} }
else
{
myRequest.CookieContainer.SetCookies( new Uri( uri ) ,sCookie );
}
myRequest.UserAgent=" Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)";
myRequest.KeepAlive = true;
try
{
HttpWebResponse myResponse = ( HttpWebResponse )myRequest.GetResponse();
stream = myResponse.GetResponseStream();
this.myCookies = myRequest.CookieContainer.GetCookieHeader( new Uri( uri ) );
}
catch (Exception e)
{
Console.WriteLine(e.Message); }
return stream;
另外,你这种办法是向服务器发送cookie吧.也没有看到有什么地方在"获取返回的cookie"
myRequest.Headers.Get("Set-Cookie");