最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用Post調(diào)用接口并傳遞json參數(shù)

 更新時(shí)間:2022年06月09日 09:52:17   作者:colouful_2021  
這篇文章主要介紹了C#使用Post調(diào)用接口并傳遞json參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。

Post調(diào)用接口并傳遞json參數(shù)

        public string Post(string Url, string jsonParas)
        {
            string strURL = Url;
            //創(chuàng)建一個(gè)HTTP請(qǐng)求  
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
            //Post請(qǐng)求方式  
            request.Method = "POST";
            //內(nèi)容類型
            request.ContentType = "application/json";
            //設(shè)置參數(shù),并進(jìn)行URL編碼 
            string paraUrlCoded = jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas);   
            byte[] payload;
            //將Json字符串轉(zhuǎn)化為字節(jié)  
            payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
            //設(shè)置請(qǐng)求的ContentLength   
            request.ContentLength = payload.Length;
            //發(fā)送請(qǐng)求,獲得請(qǐng)求流 
            Stream writer;
            try
            {
                writer = request.GetRequestStream();//獲取用于寫入請(qǐng)求數(shù)據(jù)的Stream對(duì)象
            }
            catch (Exception)
            {
                writer = null;
                Console.Write("連接服務(wù)器失敗!");
            }
            //將請(qǐng)求參數(shù)寫入流
            writer.Write(payload, 0, payload.Length);
            writer.Close();//關(guān)閉請(qǐng)求流
                           // String strValue = "";//strValue為http響應(yīng)所返回的字符流
            HttpWebResponse response;
            try
            {
                //獲得響應(yīng)流
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (WebException ex)
            {
                response = ex.Response as HttpWebResponse;
            }
            Stream s = response.GetResponseStream();
            //  Stream postData = Request.InputStream;
            StreamReader sRead = new StreamReader(s);
            string postContent = sRead.ReadToEnd();
            sRead.Close();
            return postContent;//返回Json數(shù)據(jù)
        }
        //調(diào)用:   string askurl = testUrl + "?sid=" + sid + "&mobi=" + mobi + "&sign=" + sign + "&msg=" + encodeMsgs;
        //string relust = Post(askurl, "");
        // 或者  string relust = Post(askurl, sid=" + sid + "&mobi=" + mobi + "&sign=" + sign + "&msg=" + encodeMsgs);

Post請(qǐng)求參數(shù)(發(fā)送Json參數(shù)、發(fā)送普通參數(shù))

1.發(fā)送Json格式的Post請(qǐng)求

(1)Post調(diào)用

string PostUrl="http://IP:端口/AAA/BBB/CCC";
string id="123";
string Name="小黑"; ?
JObject patientinfo = new JObject();
JArray ids = new JArray();
ids.Add(id);
patientinfo["ids"] = ids;
patientinfo["Name"] = Name;
string sendData = JsonConvert.SerializeObject(patientinfo);
//eg: ?發(fā)送Url需要的格式:sendData={"ids":[123],"Name":小黑}
string resultData = Post(sendData, PostUrl);

(2)Post方法

#region Post請(qǐng)求
/// <summary>
 /// http Post請(qǐng)求
 /// </summary>
 /// <param name="parameterData">參數(shù)</param>
 /// <param name="serviceUrl">訪問(wèn)地址</param>
 /// <param name="ContentType">默認(rèn) application/json , application/x-www-form-urlencoded,multipart/form-data,raw,binary </param>
 /// <param name="Accept">默認(rèn)application/json</param>
 /// <returns></returns>
 public string Post(string parameterData, string serviceUrl, string ContentType = "application/json", string Accept = "application/json")
 {
    //先根據(jù)用戶請(qǐng)求的uri構(gòu)造請(qǐng)求地址
    //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
    //創(chuàng)建Web訪問(wèn)對(duì)象
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
    //把用戶傳過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)成“UTF-8”的字節(jié)流
    byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);
    myRequest.Method = "POST";
    //myRequest.Accept = "application/json";
    //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
    myRequest.AutomaticDecompression = DecompressionMethods.GZip;
    myRequest.Accept = Accept;
    //myRequest.ContentType = ContentType;
    myRequest.ContentType = "application/json; charset=UTF-8";
    myRequest.ContentLength = buf.Length;
    myRequest.MaximumAutomaticRedirections = 1;
    myRequest.AllowAutoRedirect = true;
    //myRequest.Headers.Add("content-type", "application/json");
    //myRequest.Headers.Add("accept-encoding", "gzip");
    //myRequest.Headers.Add("accept-charset", "utf-8");
    //發(fā)送請(qǐng)求
    Stream stream = myRequest.GetRequestStream();
    stream.Write(buf, 0, buf.Length);
    stream.Close();
    //通過(guò)Web訪問(wèn)對(duì)象獲取響應(yīng)內(nèi)容
    HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
    //通過(guò)響應(yīng)內(nèi)容流創(chuàng)建StreamReader對(duì)象,因?yàn)镾treamReader更高級(jí)更快
    StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
    //string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有編碼問(wèn)題就用這個(gè)方法
    string returnData = reader.ReadToEnd();//利用StreamReader就可以從響應(yīng)內(nèi)容從頭讀到尾
    reader.Close();
    myResponse.Close();
    return returnData;
}
#endregion

2.帶參數(shù)的Post請(qǐng)求

(1)Post調(diào)用

string PostUrl="http://IP:端口/AAA/BBB/CCC";
Dictionary<string, string> dic=new Dictionary<string, string>();
dic.Add("Id","123");
dic.Add("Name","笑笑");
string resultData = Post(dic, PostUrl);

(2)Post方法

#region post帶參數(shù)的請(qǐng)求
  /// <summary>
    /// 指定Post地址使用Get 方式獲取全部字符串
    /// Post是從服務(wù)器上傳送數(shù)據(jù)
    /// </summary>
    /// <param name="url">請(qǐng)求Url地址</param>
    /// <param name="dic">拼接Url的字段</param>
    /// <returns></returns>
    public static string Post(string url, Dictionary<string, string> dic)
    {
        #region 【網(wǎng)上查的】
        //eg:http://IP:端口/AAA/BBB/CCC//發(fā)送對(duì)應(yīng)參數(shù)
        #region 創(chuàng)建Web訪問(wèn)對(duì)象
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        //req.Method = "POST";
        //req.ContentType = "application/x-www-form-urlencoded";
        req.Method = "POST";
        req.AutomaticDecompression = DecompressionMethods.GZip;
        req.ContentType = "application/json; charset=UTF-8";
        #endregion
     #region Post添加并拼接參數(shù),形成對(duì)應(yīng)Url地址
     StringBuilder builder = new StringBuilder();
     int i = 0;
     if (dic.Count > 0)
     {
         foreach (var item in dic)
         {
             if (i > 0)
                 builder.Append("&");
             builder.AppendFormat("{0}={1}", item.Key, item.Value);
             i++;
         }
     }
     #endregion
     #region 發(fā)送請(qǐng)求
     byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
     req.ContentLength = data.Length;
     using (Stream reqStream = req.GetRequestStream())
     {
         reqStream.Write(data, 0, data.Length);
         reqStream.Close();
     }
     #endregion
     #region 通過(guò)Web訪問(wèn)對(duì)象獲取響應(yīng)內(nèi)容
     string result = "";
     HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
     Stream stream = resp.GetResponseStream();
     //獲取響應(yīng)內(nèi)容
     using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
     {
         result = reader.ReadToEnd();
     }
     return result;
     #endregion
     #endregion
 }
 #endregion

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C# 讀寫自定義的Config文件的實(shí)現(xiàn)方法

    C# 讀寫自定義的Config文件的實(shí)現(xiàn)方法

    本文主要介紹了C# 讀寫自定義的Config文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C#圖片添加水印的實(shí)現(xiàn)代碼

    C#圖片添加水印的實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C#給圖片添加水印的實(shí)現(xiàn)代碼,不僅可以為圖片加文字水印,還可以判斷是否是圖片文件,感興趣的小伙伴們可以參考一下
    2016-02-02
  • C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法

    C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法,涉及C#操作json及DataTable的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • WPF字體或內(nèi)容模糊的解決方法

    WPF字體或內(nèi)容模糊的解決方法

    WPF下開發(fā)的程序字體模糊,這個(gè)問(wèn)題或許大家都有遇到過(guò),為了解決WPF字體模糊,查閱了各種資料,結(jié)果偶然發(fā)現(xiàn)是自己疏忽了一些細(xì)節(jié)造成的,具體是什么細(xì)節(jié)呢,通過(guò)下面的這篇文章來(lái)一起看看吧,有需要的朋友們可以參考借鑒。
    2016-12-12
  • C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法

    C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法,涉及C#實(shí)現(xiàn)HTML、WORD及PDF等文件格式轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-09-09
  • C#使用iTextSharp庫(kù)將圖片轉(zhuǎn)換為PDF

    C#使用iTextSharp庫(kù)將圖片轉(zhuǎn)換為PDF

    iTextSharp 是一個(gè)開源的 .NET 庫(kù),主要用于創(chuàng)建和操作 PDF 文檔,本文主要介紹了如何使用 C# 和 iTextSharp 將圖片轉(zhuǎn)換為 PDF 的功能,需要的可以參考下
    2024-12-12
  • WCF和Remoting之間的消息傳輸

    WCF和Remoting之間的消息傳輸

    這篇文章介紹了WCF和Remoting之間的消息傳輸,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • RandomId生成隨機(jī)字符串詳解實(shí)例

    RandomId生成隨機(jī)字符串詳解實(shí)例

    本文主要介紹RandomId 生成隨機(jī)字符串的方法,大家參考使用吧
    2013-12-12
  • C#對(duì)文件名智能排序的算法

    C#對(duì)文件名智能排序的算法

    這篇文章介紹了C#對(duì)文件名智能排序的算法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#?中的"智能枚舉"之如何在枚舉中增加行為(示例代碼)

    C#?中的"智能枚舉"之如何在枚舉中增加行為(示例代碼)

    這篇文章主要介紹了C#?中的“智能枚舉”之如何在枚舉中增加行為(示例代碼),智能枚舉跟設(shè)計(jì)模式的意義一樣,可以幫助您避免重復(fù)的代碼,并提高代碼的可讀性和可維護(hù)性,需要的朋友可以參考下
    2023-05-05

最新評(píng)論

玉林市| 武陟县| 吉隆县| 沛县| 浦北县| 南江县| 延边| 湾仔区| 灵寿县| 和静县| 基隆市| 刚察县| 雷山县| 大竹县| 田阳县| 夏津县| 天镇县| 唐海县| 浪卡子县| 苏州市| 沧州市| 石景山区| 奇台县| 蒲江县| 泰和县| 太谷县| 大理市| 诸暨市| 石嘴山市| 江安县| 临邑县| 和田市| 永修县| 称多县| 资溪县| 务川| 阳江市| 新晃| 绥芬河市| 凌云县| 息烽县|