C#發(fā)送Get、Post請(qǐng)求(帶參數(shù))
Get請(qǐng)求
1.簡(jiǎn)單發(fā)送Get請(qǐng)求
/// <summary> /// 指定Url地址使用Get 方式獲取全部字符串 /// </summary> /// <param name="url">請(qǐng)求鏈接地址</param> /// <returns></returns> public static string Get(string url) { string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); try { //獲取內(nèi)容 using (StreamReader reader = new StreamReader(stream)) { result = reader.ReadToEnd(); } } finally { stream.Close(); } return result; }
2.帶請(qǐng)求參數(shù)的Get方法
/// <summary> /// 發(fā)送Get請(qǐng)求 /// </summary> /// <param name="url">地址</param> /// <param name="dic">請(qǐng)求參數(shù)定義</param> /// <returns></returns> public static string Get(string url, Dictionary<string, string> dic) { string result = ""; StringBuilder builder = new StringBuilder(); builder.Append(url); if (dic.Count > 0) { builder.Append("?"); int i = 0; foreach (var item in dic) { if (i > 0) builder.Append("&"); builder.AppendFormat("{0}={1}", item.Key, item.Value); i++; } } HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString()); //添加參數(shù) HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); try { //獲取內(nèi)容 using (StreamReader reader = new StreamReader(stream)) { result = reader.ReadToEnd(); } } finally { stream.Close(); } return result; }
3.自定義指定Http請(qǐng)求頭,自定義指定編碼解析返回結(jié)果
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; req.Headers["Accept-Language"] = "zh-CN,zh;q=0.8"; req.Referer = "https://www.baidu.com/"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); string result = ""; //注意,此處使用的編碼是:gb2312 //using (StreamReader reader = new StreamReader(stream, Encoding.Default)) using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("gb2312"))) { result = reader.ReadToEnd(); }
Post請(qǐng)求
此處內(nèi)容傳輸都是用UTF-8編碼
1.不帶參數(shù)發(fā)送Post請(qǐng)求
/// <summary> /// 指定Post地址使用Get 方式獲取全部字符串 /// </summary> /// <param name="url">請(qǐng)求后臺(tái)地址</param> /// <returns></returns> public static string Post(string url) { string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); //獲取內(nèi)容 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { result = reader.ReadToEnd(); } return result; }
2.帶參數(shù)Post請(qǐng)求,指定鍵值對(duì)
/// <summary> /// 指定Post地址使用Get 方式獲取全部字符串 /// </summary> /// <param name="url">請(qǐng)求后臺(tái)地址</param> /// <returns></returns> public static string Post(string url,Dictionary<string,string> dic) { string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; #region 添加Post 參數(shù) StringBuilder builder = new StringBuilder(); int i = 0; foreach (var item in dic) { if (i > 0) builder.Append("&"); builder.AppendFormat("{0}={1}", item.Key, item.Value); i++; } 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 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; }
3.帶參數(shù)的Post請(qǐng)求,指定發(fā)送字符串內(nèi)容
/// <summary> /// 指定Post地址使用Get 方式獲取全部字符串 /// </summary> /// <param name="url">請(qǐng)求后臺(tái)地址</param> /// <param name="content">Post提交數(shù)據(jù)內(nèi)容(utf-8編碼的)</param> /// <returns></returns> public static string Post(string url, string content) { string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; #region 添加Post 參數(shù) byte[] data = Encoding.UTF8.GetBytes(content); req.ContentLength = data.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(data, 0, data.Length); reqStream.Close(); } #endregion 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; }
轉(zhuǎn)載方法:
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://fanyi.baidu.com/transcontent"); Encoding encoding = Encoding.UTF8; string param = "ie=utf-8&source=txt&query=hello&t=1327829764203&token=8a7dcbacb3ed72cad9f3fb079809a127&from=auto&to=auto"; //encoding.GetBytes(postData); byte[] bs = Encoding.ASCII.GetBytes(param); string responseData = String.Empty; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = bs.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); reqStream.Close(); } using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(),encoding)) { responseData = reader.ReadToEnd().ToString(); } context.Response.Write(responseData); }
到此這篇關(guān)于C#發(fā)送Get、Post請(qǐng)求(帶參數(shù))的文章就介紹到這了,更多相關(guān)C#發(fā)送Get、Post請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)將HTML網(wǎng)頁或HTML字符串轉(zhuǎn)換為PDF
將HTML轉(zhuǎn)換為PDF可實(shí)現(xiàn)格式保留、可靠打印、文檔歸檔等多種用途,滿足不同領(lǐng)域和情境下的需求,所以本文就來介紹一下如何使用C#實(shí)現(xiàn)將HTML網(wǎng)頁或HTML字符串轉(zhuǎn)換為PDF,有需要的可以參考下2024-01-01C#使用OpenCvSharp實(shí)現(xiàn)透視變換功能
這篇文章主要為大家詳細(xì)介紹了C#如何使用OpenCvSharp實(shí)現(xiàn)透視變換的功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的學(xué)習(xí)價(jià)值,需要的小伙伴可以參考下2023-11-11【C#基礎(chǔ)】Substring截取字符串的方法小結(jié)(推薦)
這篇文章主要介紹了Substring截取字符串方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05C#判斷頁面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C#判斷頁面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法,是一個(gè)非常簡(jiǎn)單實(shí)用的技巧,需要的朋友可以參考下2014-10-10