C#发送Get、Post请求(带参数)
程序员文章站
2022-06-16 22:32:51
目录get请求post请求get请求1.简单发送get请求/// /// 指定url地址使用get 方式获取全部字符串/// /// &l...
get请求
1.简单发送get请求
/// <summary> /// 指定url地址使用get 方式获取全部字符串 /// </summary> /// <param name="url">请求链接地址</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 { //获取内容 using (streamreader reader = new streamreader(stream)) { result = reader.readtoend(); } } finally { stream.close(); } return result; }
2.带请求参数的get方法
/// <summary> /// 发送get请求 /// </summary> /// <param name="url">地址</param> /// <param name="dic">请求参数定义</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()); //添加参数 httpwebresponse resp = (httpwebresponse)req.getresponse(); stream stream = resp.getresponsestream(); try { //获取内容 using (streamreader reader = new streamreader(stream)) { result = reader.readtoend(); } } finally { stream.close(); } return result; }
3.自定义指定http请求头,自定义指定编码解析返回结果
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请求
此处内容传输都是用utf-8编码
1.不带参数发送post请求
/// <summary> /// 指定post地址使用get 方式获取全部字符串 /// </summary> /// <param name="url">请求后台地址</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(); //获取内容 using (streamreader reader = new streamreader(stream, encoding.utf8)) { result = reader.readtoend(); } return result; }
2.带参数post请求,指定键值对
/// <summary> /// 指定post地址使用get 方式获取全部字符串 /// </summary> /// <param name="url">请求后台地址</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 参数 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(); //获取响应内容 using (streamreader reader = new streamreader(stream, encoding.utf8)) { result = reader.readtoend(); } return result; }
3.带参数的post请求,指定发送字符串内容
/// <summary> /// 指定post地址使用get 方式获取全部字符串 /// </summary> /// <param name="url">请求后台地址</param> /// <param name="content">post提交数据内容(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 参数 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(); //获取响应内容 using (streamreader reader = new streamreader(stream, encoding.utf8)) { result = reader.readtoend(); } return result; }
转载方法:
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); }
到此这篇关于c#发送get、post请求(带参数)的文章就介绍到这了,更多相关c#发送get、post请求内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 详解如何使用Node.js实现热重载页面
下一篇: 漫谈golang设计模式 简易工厂模式
推荐阅读
-
Android下通过httpClient发送GET和POST请求的实例代码
-
C#模拟http 发送post或get请求的简单实例
-
php发送get、post请求的6种方法简明总结
-
python通过get,post方式发送http请求和接收http响应的方法
-
详解使用fetch发送post请求时的参数处理
-
JS获取url参数,JS发送json格式的POST请求方法
-
Android发送GET与POST请求的DEMO详解
-
PHP get和post向服务器发送请求
-
Android下通过httpClient发送GET和POST请求的实例代码
-
fiddler使用方法之Fiddler显示IP,Fiddler中文乱码解决方法以及fiddler模拟发送get/post请求