1. 程式人生 > >C#帶cookie Post和Get方式傳送資料,保持cookie

C#帶cookie Post和Get方式傳送資料,保持cookie

在實際程式設計中,可能需要讀取特定網頁的資訊,但很多網站需要使用者登入後,才能夠獲取相關的頁面內容,這就需要程式設計者先臨時儲存當前的cookie,在C#中可以使用CookieContainer 物件來儲存登入後的Cookie資訊,這樣,在每次傳送資料的時候,附加上Cookie資訊,就可以了。
      

       #region 同步通過POST方式傳送資料
       /// <summary>
       /// 通過POST方式傳送資料
       /// </summary>
       /// <param name="Url">url</param>
       /// <param name="postDataStr">Post資料</param>
       /// <param name="cookie">Cookie容器</param>
       /// <returns></returns>
       public string SendDataByPost(string Url,string postDataStr,ref CookieContainer cookie)
       {
         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
         if (cookie.Count == 0)
         {
            request.CookieContainer = new CookieContainer();
            cookie = request.CookieContainer;
         }
         else
         {
            request.CookieContainer = cookie;
         }

         request.Method = "POST";
         request.ContentType = "application/x-www-form-urlencoded";
         request.ContentLength = postDataStr.Length;
         Stream myRequestStream = request.GetRequestStream();
         StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
         myStreamWriter.Write(postDataStr);
         myStreamWriter.Close();

         HttpWebResponse response = (HttpWebResponse)request.GetResponse();
         Stream myResponseStream = response.GetResponseStream();
         StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
         string retString= myStreamReader.ReadToEnd();
         myStreamReader.Close();
         myResponseStream.Close();

         return retString;
       }
       #endregion

       #region 同步通過GET方式傳送資料
       /// <summary>
       /// 通過GET方式傳送資料
       /// </summary>
       /// <param name="Url">url</param>
       /// <param name="postDataStr">GET資料</param>
       /// <param name="cookie">GET容器</param>
       /// <returns></returns>
       public string SendDataByGET(string Url, string postDataStr, ref CookieContainer cookie)
       {
         HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url +( postDataStr == "" ? "" : "?") + postDataStr);
         if (cookie.Count == 0)
         {
            request.CookieContainer = new CookieContainer();
            cookie = request.CookieContainer;
         }
         else
         {
            request.CookieContainer = cookie;
         }

         request.Method = "GET";
         request.ContentType = "text/html;charset=UTF-8";
         
         HttpWebResponse response = (HttpWebResponse)request.GetResponse();
         Stream myResponseStream = response.GetResponseStream();
         StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
         string retString = myStreamReader.ReadToEnd();
         myStreamReader.Close();
         myResponseStream.Close();

         return retString;
       }
       #endregion

相關推薦

C#cookie PostGet方式傳送資料保持cookie

在實際程式設計中,可能需要讀取特定網頁的資訊,但很多網站需要使用者登入後,才能夠獲取相關的頁面內容,這就需要程式設計者先臨時儲存當前的cookie,在C#中可以使用CookieContainer 物件來儲存登入後的Cookie資訊,這樣,在每次傳送資料的時候,附加上Cookie資訊,就可以了。       

Http (java)的postget方式

inf log href www param client get char comm 用java發送post和get請求的兩種方式 1.URL 2.httpclient 第一種方式: URL形式發送請求 第二種方式: commons-httpclient-3.1.jar;

http請求的postget方式的區別

在網上找了post和get請求方式的不同和區別,感覺這個比較好,轉載過來和大家分享! Http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認為:一個URL地址,它用於描述一個網路上的

java使用PostGet方式提交Http請求通用

很多api提供了java的post,get方式呼叫返回結果的介面,以下記錄基礎通用的傳送請求並接收返回引數的方式:package com.taray.test; import java.io.BufferedReader; import java.io.IOException

如何解決POSTGET方式的中文亂碼問題

一:確保表單所在的頁面按照指定的字符集開啟★在HTML頁面中使用meta標記可以確保瀏覽器按照指定的字符集進行解碼頁面,並限定表單提交時的資料編碼方式:<meta http-equiv="content-type" content="text/html;charset=utf-8">:完成ISO-

java httpclient POSTGET請求 傳送JSON

第一步導包 匯入的jar包有  1:httpclient  2:httpcore  3commons-logging-api  4:json包 (轉換json的jar包是很多的每個系統的方法都是不一樣) json-io-4.3.0 第二步 寫程式碼 GET請求 publi

原生ajax post get 方式傳值

<script type='text/javascript'> function closes (){ var r=confirm("確定要刪除嗎") if (r==true){

Servlet編碼過濾器(Postget方式都支援)

package com.pdsu.filter; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.Filter; import j

提交Form表單POSTGET方式的傳值問題。

<form action="${pageContext.request.contextPath }/UserServlet?id=123" method="get"> userame:<input type="text" name="username"&

Httpclient重寫postget方式連線伺服器

package com.cetron.common.utils.Http; import com.google.gson.Gson; import org.apache.http.HttpEntity; import org.apache.http.client.Cli

django postget方法獲取資料 資料在模板上的遍歷

 兩個問題: 1.在使用django時,前臺頁面使用post或者get方法給後臺傳遞資料 django如何獲得 首先可以用HttpRequest.method 方法判斷是post還是get request.method==POST 或者request.method==GET

django postget方法獲取資料 資料在模板上的遍歷

 兩個問題: 1.在使用django時,前臺頁面使用post或者get方法給後臺傳遞資料 django如何獲得 首先可以用HttpRequest.method 方法判斷是post還是get reque

Python中用postget方式提交資料的方法示例

最近在使用Python的過程中,發現網上很少提到在使用post方式時,怎麼傳一個數組作為引數的示例,此處根據自己的實踐經驗,給出相關示例,下面話不多說了,來一起跟著小編學習學習吧。示例如下:單純的post請求:    def http_post():  url = "http

HttpClient的POSTGET請求和Session的保持-yellowcong

對於Http的get和post是無狀態的,所以我們需要將socket儲存,然後帶著socket去訪問網站,就好像我們瀏覽器去訪問一樣,就可以爬去登入後的資料 HttpClient工具類所用到的jar包 其實這個jar包,真是很淡騰,由於Ht

java中form以postget方式提交資料中文亂碼問題總結

一:form在前臺以post方式提交資料:     瀏覽器將資料(假設為“中國”)傳送給伺服器的時候,將資料變成0101的二進位制資料(假設為98 99)時必然要查碼錶,瀏覽器以哪個碼錶開啟網頁,瀏覽器就以哪個碼錶提交資料。資料到達伺服器後,資料(98 99)要封裝到req

PHP使用CURL模擬POST/GET方式提交資料支援HTTPS請求

之前研究騰訊以及新浪微博的時候發現使用原本的CURL方式請求無法獲取返回值,後來才發現因為是HTTPS請求 /** * 模擬提交引數,支援https提交 可用於各類api請求 * @param string $url : 提交的地址 * @param arr

C#傳送簡單的postget請求(轉載)

POST傳送請求及接受響應流程  根據目標地址址建立HttpWebRequest物件 設定響應的請求引數------Method、ContentType 等 使用HttpWebRequest物件獲取請求流並且寫入訊息體    使用H

HTML提交方式postget區別(實驗)

des url action 通過 性別 清除數據 map pass pack HTML提交方式post和get區別(實驗) 一、post和get區別 get提交,提交的信息都顯示在地址欄中。 post提交,提交的信息不顯示地址欄中,顯示在消息體中。 二、客戶端代碼

C++使用libcurl做HttpClient(業務觀摩C++封裝過程式代碼postget的數據,最好url編碼否則+會變成空格)good

com 如果 msvc 是否 out tle source rac 無需 當使用C++做HTTP客戶端時,目前通用的做法就是使用libcurl。其官方網站的地址是http://curl.haxx.se/,該網站主要提供了Curl和libcurl。Curl是命令行

HttpClient用PostGet引數提交幫助類

  轉載自https://blog.csdn.net/nevergiveuplzl/article/details/52304266 import java.util.ArrayList;  import java.util.List;  import java