HttpWebRequest利用HTTP 协议和服务器交互,通常是通过 GET 和 POST 两种方式来对数据进行获取和提交

代码如下:

public string PostDataGetHtml(string uri, string postData)
        {
            try
            {
                byte[] data = Encoding.UTF8.GetBytes(postData);//请求参数编码

Uri uRI = new Uri(uri);//请求路径
                HttpWebRequest req = WebRequest.Create(uRI) as HttpWebRequest;
                req.Method = "POST";//请求方式  可支持GET、POST
                req.KeepAlive = true;//是否持久连接  下面有介绍
                req.ContentType = "application/x-www-form-urlencoded";  //传输内容类型
                req.ContentLength = data.Length;
                req.AllowAutoRedirect = true;  //指示请求是否应跟随重定向响应

Stream outStream = req.GetRequestStream();//写入流
                outStream.Write(data, 0, data.Length);
                outStream.Close();

HttpWebResponse res = req.GetResponse() as HttpWebResponse;
                Stream inStream = res.GetResponseStream();
                StreamReader sr = new StreamReader(inStream, Encoding.UTF8);//读取编码
                string htmlResult = sr.ReadToEnd();

return htmlResult;
            }
            catch (Exception ex)
            {
                return "网络错误:" + ex.Message.ToString();
            }
        }

keepalive 的原理,TCP会在空闲了一定时间后发送数据给对方:

1.如果主机可达,对方就会响应ACK应答,就认为是存活的。

2.如果可达,但应用程序退出,对方就发FIN应答,发送TCP撤消连接。

3.如果可达,但应用程序崩溃,对方就发RST消息。

4.如果对方主机不响应ack, rst,继续发送直到超时,就撤消连接。这个时间就是默认

的二个小时。

WebRequest 请求相关推荐

  1. .Net Core下发送WebRequest请求的两种方式

    1.使用RestSharp.NetCore 2.使用WebApi请求方式 转载于:https://www.cnblogs.com/mailaidedt/p/6525501.html

  2. WebRequest 请求被中止: 请求已被取消。 错误解决方法

    使用HttpWebResponse的时候老是报错:"请求被中止: 请求已被取消." 原因是添加了 contentLength 注释掉就好了, //request.ContentLe ...

  3. 挣脱浏览器的束缚(7) - CrossSubDomainExecutor

    在上次的文章中,我们已经提到了一种能够跨子域名进行AJAX请求的方法.我们现在就来实现一个对开发人员透明的实现,它会自动判断这个请求是否是跨子域名,如果不是,则使用传统的方法发出AJAX请求,反之则使 ...

  4. Reactive Extensions入门(5):ReactiveUI MVVM框架

    从前面几篇文章可以了解到,Rx作为LINQ的一种扩展,极大地简化了异步编程.但Rx的用法不仅如此,由于其可高的扩展性,在其他很多方面也有所应用. 在前面例子中,我们使用代码和UI界面上的元素打交道,这 ...

  5. 【完全开源】微信客户端.NET版

    目录 说明 功能 原理步骤 一些参考 说明 前两天比较闲,研究了一下web版微信.因为之前看过一篇博客讲微信web协议的,后来尝试分析了一下,半途中发现其实没什么意义,但又不想半途而废,所以最后做出了 ...

  6. C#程序设计下,网易云课堂,计算机专业

     C#程序设计下: 第一讲 绘图及其图像, 1.1 绘图基础 GDI+ GDI:Graphics Device Interface 是.NET框架结构的重要组成部分.和GDI一样提供对二维图像的支 ...

  7. c#中https通讯如何添加证书

    c#如何在https在通讯中需要添加证书密码 public static class HTTPS{// byte[] certificate = Properties.Resources.client ...

  8. 2021-09-29 Unity WebGL平台开发遇到的坑

    内容简介:最近在用Unity做一个 WebGL 平台的项目,开发过程中遇到了各种各样的坑,这里简单记录一下,以免以后再踩.首先是Http请求的问题,我最开始想的是,直接用C#里的写法,编辑器里测试毫无 ...

  9. 微信支付宝SDK接入服务器开发篇

    文章目录 023 服务器的工程结构 024 封装支付事件 EventCenter.cs 025 网络模块的封装 Net/Agent.cs Net/NetComponent.cs 026 完成辅助类 T ...

最新文章

  1. typedef用法小结
  2. 中国汽车电器运营现状与十四五发展规划报告2022-2028年版
  3. Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)
  4. centos8安装mongodb5
  5. Nutch开发(四)
  6. 十分钟-Nginx入门到上线
  7. 1124Js基础语法
  8. 基于R语言、MATLAB、Python机器学习方法与案例分析
  9. intellijIDEA Spring配置文件提示: File is included in 4 contexts
  10. Teamviewer QuickSupport - 在电脑上远程连接控制手机/平板的软件神器 (Android/iOS)
  11. oracle_java.exe,系统找不到C:\ProgramData\Oracle\Java\javapath\java.exe问题及解决方案
  12. 十二星座匹配对象_水瓶座最佳配对对象是谁
  13. 《爱情公寓》电影,让我十年的情怀,一瞬间都喂了狗
  14. 怎么装python的keras库_Keras教程:用Python进行深度学习的终极入门指南
  15. html如何设置下拉列表
  16. 理解Kotlin密封类Sealed
  17. iOS动画——弹窗动画(pop动画)
  18. 乐高大颗粒作品17:托马斯小火车
  19. 【开发随记】国密SM2的简单运用和踩坑
  20. linux pycharm无法输入中文,linux下idea、pycharm等输入中文拼音时满3个字母后无法继续拼音输入的问题...

热门文章

  1. 三大特征 封装 继承 多态
  2. 常见的文件头格式解析
  3. sklearn中的感知机模型perceptron
  4. 【开发心得】Django架构图一目了然
  5. 快速上手正则表达式RegularExpression(正则表达式常用笔记整理)
  6. 【转】ConcurrentHashMap分段锁原理
  7. 基于SpringBoot的美甲店管理系统的设计
  8. 猴子选大王C/C++(两种方法)
  9. android喷气背包游戏截图
  10. 巧用cad SC命令和特性实现缩放功能。