日期:2014-05-18  浏览次数:20447 次

C# 用WebRequest的访问post发送到远程url时怎么远程url读取不到cookies
C# 用WebRequest的访问post发送到远程url时怎么远程url读取不到cookies

如果直接访问远程url是ok的,如果用a页面在C#里post到远程url时,就有问题了,读取不到cookies,致使程序没办法用

请问手帮忙。。
a页面主要代码:
private static string CallWebPage(string url, string postDataStr, Encoding Encod)
  {
  string rStr = "";
  System.Net.WebRequest req = null;
  System.Net.WebResponse resp = null;
  System.IO.Stream os = null;
  System.IO.StreamReader sr = null;
  try
  {
  //创建连接
  req = System.Net.WebRequest.Create(url);
  //设置访问方式和发送的请求数据的内容类型
  if (string.IsNullOrEmpty(postDataStr))
  {
  req.ContentType = "application/x-www-form-urlencoded";
  req.Method = "GET";
  }
  else
  {
  req.ContentType = "application/x-www-form-urlencoded";
  req.Method = "POST";
  if (Encod == null)
  {
  Encod = System.Text.Encoding.Default;
  }
  byte[] bytes = Encod.GetBytes(postDataStr);
  req.ContentLength = bytes.Length;
  os = req.GetRequestStream();
  os.Write(bytes, 0, bytes.Length);
  os.Close();
  }

  //读取返回结果
  resp = req.GetResponse();
  sr = new System.IO.StreamReader(resp.GetResponseStream(), System.Text.Encoding.Default);
  rStr = sr.ReadToEnd();
  }
  catch (Exception ex1)
  {
  //LogUtil.Warn("HttpUtil.CallWebPage 异常:" + ex1.Message);

  }
  finally
  {
  try
  {
  //关闭资源
  if (os != null)
  {
  os.Dispose();
  os.Close();
  }
  if (sr != null)
  {
  sr.Dispose();
  sr.Close();
  }

  if (resp != null)
  {
  resp.Close();

  }


  if (req != null) req = null;
  }
  catch (Exception ex2)
  {
  //LogUtil.Exception("HttpUtil.CallWebPage 关闭连接异常:" + ex2.Message);
  }
  }
  return rStr;
  }
调用代码:string r = CallWebPage("http://xx.com/count.aspx", "username=2222222222",null);

b页面主页代码:
string guid = HttpContext.Current.Request.Cookies["guid"] == null ? "" : HttpContext.Current.Request.Cookies["guid"].Value;
  if (!string.IsNullOrEmpty(guid))
  {
  string username = Request.QueryString["username"];
  new Count_DAL().AddUserInfo(username);
  Response.Write("1:成功");  
  }
  else
  {
  Response.Write("2:失败,无guid的Cookies");
  return;
  }


直接http://xx.com/count.aspx