採集/自動登陸啊均可以用這兩個方法實現 asp.net

/// <summary>
/// 經過get方式發送xmlHttp請求,並得到響應數據 /// </summary>
/// <param name="Url">URL地址,參數直接寫到後面,如:http://www.baidu.com/index.asp?id=7</param>
/// <param name="Encoding">請求和返回數據採用的編碼方式,如 "gb2312" ,"utf-8"</param>
/// <returns></returns>
public static string SendXmlHttpWithGet(string Url, string Encoding, CookieContainer cookie) { HttpWebRequest request;// = (HttpWebRequest)WebRequest.Create(Url);
    string ResponseHtml = ""; try { request = (HttpWebRequest)WebRequest.Create(Url); request.CookieContainer = cookie; request.KeepAlive = false; //是否創建持久鏈接
        request.Timeout = 6000; //超時時間
        request.Method = "get"; //get方式提交
        request.ContentType = "application/x-www-form-urlencoded;charset=" + Encoding; request.AllowAutoRedirect = true; //是否跟隨重定向
        request.MaximumAutomaticRedirections = 10; //重定向最大數
        request.AllowWriteStreamBuffering = false; //是否對發送數據進行緩衝處理
        request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; //進行身份驗證
 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //得到響應
        Stream responseStream = response.GetResponseStream(); //得到響應流
        StreamReader readStream = new StreamReader(responseStream, System.Text.Encoding.GetEncoding(Encoding)); //讀取字節的方式讀取流
 ResponseHtml = readStream.ReadToEnd(); //讀完流
        responseStream.Close(); //關閉響應流
        readStream.Close();//關閉字節流
 } catch (Exception ex) { ResponseHtml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><data><success value=\"0\" msg=\"登陸失敗!" + ex.Message.ToString() + "\" /></data>"; } finally { } return ResponseHtml; } /// <summary>
/// 經過post方式發送xmlHttp請求,並得到響應數據 /// </summary>
/// <param name="url">URL地址</param>
/// <param name="parms">須要處理的參數鍵值對</param>
/// <param name="encoding">請求和返回數據採用的編碼方式,如 "gb2312" ,"utf-8"</param>
/// <returns></returns>
public static string SendXmlHttpWithPost(string url, Hashtable parms, string encoding, CookieContainer cookie) { HttpWebRequest request ;//= (HttpWebRequest)WebRequest.Create(url);
    string ResponseHtml = ""; try { request = (HttpWebRequest)WebRequest.Create(url); request.CookieContainer = cookie; ////傳參數
        if (encoding == null) { encoding = "utf-8"; } Encoding myEncoding = Encoding.GetEncoding(encoding); //指定編碼

        string parmsStr = ""; if (parms != null) { foreach (DictionaryEntry item in parms) { parmsStr += "&" + HttpUtility.UrlEncode(item.Key.ToString(), myEncoding); parmsStr += "=" + HttpUtility.UrlEncode(item.Value.ToString(), myEncoding); } if (parmsStr.Length > 0) { parmsStr = parmsStr.Substring(1, parmsStr.Length - 1); //把第一個"&"刪了
 } } byte[] postBytes = myEncoding.GetBytes(parmsStr); request.Timeout = 60000; //超時時間
        request.Method = "post"; //採用post方法提交
        request.ContentType = "application/x-www-form-urlencoded;charset=" + myEncoding; request.ContentLength = postBytes.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(postBytes, 0, postBytes.Length); //把參數寫入請求流
 requestStream.Close(); //獲取響應
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();//獲取響應
        Stream responseStream = response.GetResponseStream();//獲取響應流
        StreamReader readStream = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); //採用StreamReader用指定編碼讀取響應流
 ResponseHtml = readStream.ReadToEnd(); //讀完流
        responseStream.Close(); //關閉響應流
        readStream.Close();//關閉字節流
 } catch (Exception ex) { ResponseHtml= "<?xml version=\"1.0\" encoding=\"utf-8\" ?><data><success value=\"0\" msg=\"登陸失敗!" + ex.Message.ToString() + "\" /></data>"; } return ResponseHtml;
相關文章
相關標籤/搜索