zoukankan      html  css  js  c++  java
  • 自己修改的一个WebRequest+代理+POST登录

    public static void ProxySetting(WebRequest request)
              {
                  WebProxy proxy = WebProxy.GetDefaultProxy();//获取IE缺省设置
                  //如果缺省设置为空,则有可能是根本不需要代理服务器,如果此时配置文件中也未配置则认为不需Proxy
                  if (proxy.Address == null)
                      proxy.Address = new Uri("××××××:8080");//按配置文件创建Proxy 地置
                  if (proxy.Address != null)//如果地址为空,则不需要代理服务器
                  {
                      proxy.Credentials = new NetworkCredential("test123","123456");//从配置封装参数中创建
                      request.Proxy = proxy;//赋予 request.Proxy
                  }
              }

              public static string GetHtmlOne(string url)
              {
                  url = url.Replace("&", "&");

                  string indata = "userid=name&passwd=password&SESSION_TIMEOUT=40";
                  string outdata = "";

                  CookieContainer myCookieContainer = new CookieContainer();
                  //新建一个CookieContainer来存放Cookie集合
                  HttpWebRequest myHttpWebRequest;

                  myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http:// www.12355.com/logincheck.aspx");
                  //新建一个HttpWebRequest
                  myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                  myHttpWebRequest.ContentLength = indata.Length;
                  myHttpWebRequest.Method = "POST";
                  ProxySetting(myHttpWebRequest);
                  myHttpWebRequest.CookieContainer = myCookieContainer;
                  //设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer
                  Stream myRequestStream = myHttpWebRequest.GetRequestStream();
                  StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
                  myStreamWriter.Write(indata);
                  //把数据写入HttpWebRequest的Request流
                  myStreamWriter.Close();
                  myRequestStream.Close();
                  //关闭打开对象
                  HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                  //新建一个HttpWebResponse
                  myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
                  //获取一个包含url的Cookie集合的CookieCollection
                  Stream myResponseStream = myHttpWebResponse.GetResponseStream();
                  StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
                  outdata = myStreamReader.ReadToEnd();
                  //把数据从HttpWebResponse的Response流中读出
                  myStreamReader.Close();
                  myResponseStream.Close();
                  //显示"登录"

                  //拿到了Cookie,再进行请求就能直接读取到登录后的内容了
                  myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                  ProxySetting(myHttpWebRequest);//设置代理访问的权限。
                  myHttpWebRequest.CookieContainer = myCookieContainer;//*
                  //刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
                  myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                  myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
                  myResponseStream = myHttpWebResponse.GetResponseStream();
                  myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
                  outdata = myStreamReader.ReadToEnd();
                  myStreamReader.Close();
                  myResponseStream.Close();
                  return outdata;
                  //再次显示"登录"
                  //如果把*行注释调,就显示"没有登录"

              }

  • 相关阅读:
    WPF基础之内容控件
    WPF基础之路由事件
    WPF基础分享之布局
    JMeter操作手册
    Jmeter安装和配置
    UI自动化--Web Driver小结
    对于自动化测试框架的总结
    UI自动化--selenium webdriver
    postman断言
    接口测试工具---postman的基本使用
  • 原文地址:https://www.cnblogs.com/goody9807/p/1107512.html
Copyright © 2011-2022 走看看