• POST发送请求及接受响应流程
  1. 根据目标地址址创建HttpWebRequest对象
  2. 设置响应的请求参数------Method、ContentType 等
  3. 使用HttpWebRequest对象获取请求流并且写入消息体
  4. 使用HttpWebRequest对象获取响应流并读取流中数据(在获取过程中就是发送请求并接受响应)
  • GET发送请求及接受响应流程
  1. 把目标地址和查询字符串拼接在一起(如果有查询字符串)使用拼接的字符串创建HttpWebRequest对象
  2. 设置响应的请求参数------Method、ContentType 等
  3. 使用HttpWebRequest对象获取响应流并读取流中数据(在获取过程中就是发送请求并接受响应)

以下为代码:

两个请求方法 和读取方法

        /// <summary>/// 发送http post请求/// </summary>/// <param name="url">地址</param>/// <param name="parameters">查询参数集合</param>/// <returns></returns>public HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters){HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象request.Method = "POST";//请求方式request.ContentType = "application/x-www-form-urlencoded";//链接类型//构造查询字符串if (!(parameters == null || parameters.Count == 0)){StringBuilder buffer = new StringBuilder();bool first = true;foreach (string key in parameters.Keys){if (!first){buffer.AppendFormat("&{0}={1}", key, parameters[key]);}else{buffer.AppendFormat("{0}={1}", key, parameters[key]);first = false;}}byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());//写入请求流using (Stream stream = request.GetRequestStream()){stream.Write(data, 0, data.Length);}}return request.GetResponse() as HttpWebResponse;}/// <summary>/// 发送http Get请求/// </summary>/// <param name="url"></param>/// <returns></returns>public static HttpWebResponse CreateGetHttpResponse(string url){HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;request.Method = "GET";request.ContentType = "application/x-www-form-urlencoded";//链接类型return request.GetResponse() as HttpWebResponse;}/// <summary>/// 从HttpWebResponse对象中提取响应的数据转换为字符串/// </summary>/// <param name="webresponse"></param>/// <returns></returns>public string GetResponseString(HttpWebResponse webresponse){using (Stream s = webresponse.GetResponseStream()){StreamReader reader = new StreamReader(s, Encoding.UTF8);return reader.ReadToEnd();}}

  调用

//post请求并调用Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("id", "4");
textBox1.Text = GetResponseString(CreatePostHttpResponse("https://www.baidu.com/", dic));
//get请求并调用textBox3.Text = GetResponseString(CreateGetHttpResponse("https://i.cnblogs.com/EditPosts.aspx?opt=1"));

  

       

转载于:https://www.cnblogs.com/cyh1282656849/p/7486262.html

c#发送简单的post、get请求相关推荐

  1. 利用WebClient发送一个简单的HTTP GET请求并且取回响应

    问题 如何发送一个简单的HTTP GET请求并且取回相应的HTTP响应. 设计 创建一个WebClient类的实例,然后使用它的DownloadData()方法. 方案 string uri = &q ...

  2. 如何在客户端发送ajax请求,ajax - 从服务器(nodejs)发送数据到客户端(ajax请求)

    如何使用nodejs将数据从服务器发送到客户端? 所以基本上我通过点击一个按钮来调用这个函数 javascriptfunction createStuff(tid) { $.ajax({ type: ...

  3. 关于nodejs发送带参数的post请求调用人人网api

    其实对js基本都没什么了解就要去用nodejs尝试实在有些勉强,做些简单的笔记以后看起来或许有些帮助. 用-express   -e  xxx(应用名)创建基于ejs模版的应用. 按提示cd xxx并 ...

  4. 使用Restlet Client发送各种Get和Post请求

    使用Restlet Client发送各种Get和Post请求 原地址:https://blog.csdn.net/zlp1992/article/details/76706017 在开发web应用时, ...

  5. python headr方法_对Python发送带header的http请求方法详解

    简单的header import urllib2 request = urllib2.Request('http://example.com/') request.add_header('User-A ...

  6. java发送简单邮件_Java程序实现发送简单文本邮件

    /** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public  ...

  7. Golang gin框架:发送GET POST PUT DELETE请求

    package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {r := gin. ...

  8. JavaMail发送简单邮件

    2019独角兽企业重金招聘Python工程师标准>>> package cn.jmail.test;import java.util.Properties;import javax. ...

  9. SAP云平台开启Kyma功能时发送到后台的HTTP请求

    进入SAP云平台的subaccount,切换到Kyma environment面板下,点击Enable Kyma: 输入Kyma集群的名称和描述信息: 观察发送到后台的HTTP请求明细: {" ...

  10. Android官方开发文档Training系列课程中文版:分享简单数据之发送简单数据给其它APP

    原文地址:http://android.xsoftlab.net/training/building-content-sharing.html 引言 Android应用程序有一项伟大的事情就是它们有可 ...

最新文章

  1. 2018-3-11 HDFS2.X
  2. 约会安排 (区间合并)毒瘤题
  3. 口碑好的mysql数据监控平台_构建狂拽炫酷屌的 MySQL 监控平台
  4. Android关闭Activity
  5. 几个多字节和UNICODE及UTF-8之间相互转化的函数
  6. WINDOW7下 配置APACHE+PHP 无法加载MYSQL 的问题
  7. 接口测试第二课(Fiddler实现APP抓包)
  8. sybase 连接mysql_安装sybase服务器并连接数据库
  9. ORM框架 Dapper
  10. 前端截取视频第一帧作为封面
  11. 8.声卡驱动06-自己实现alsa驱动-虚拟声卡-widget
  12. Vscode tab键使用
  13. (毕业设计资料)基于单片机51单片机智能药盒控制系统设计
  14. 沈阳东网科技和福建卓智网络面试心得
  15. 星巴克男子的豆瓣网创业故事
  16. 怎样修改图纸中单个图块的基点 ?
  17. APICloud入门
  18. IIC总线协议及应用
  19. GridView选中状态
  20. dojo引用html模板,深入浅出dojo/request-本地HTML文件 带参数方案-遮罩层《一》_169IT.COM...

热门文章

  1. Linq中Average,Sum等方法的使用解析
  2. 深度学习框架 TensorFlow.NET 0.1.0,完善变量更新操作
  3. 面向对象的分析与设计
  4. 编辑器eslint格式_VScode格式化代码,开启ESlint代码检测方法,eslint代码配置
  5. python第三周笔记_Python第四周 学习笔记(1)
  6. 多线程(thread)+进程(Process)
  7. 编写函数实现员工信息录入和输出_Excel---最牛的员工档案模板,非常智能化
  8. eigrp配置实验_EIGRP负载均衡的实现
  9. JS计算两个日期时间差,天 小时 分 秒格式
  10. python脚本运行命令_从Python脚本运行shell命令