一、HttpClient类

用于发送http请求,并接受请求的相应

(从4.5起开始可用)

using System.Net.Http;

 异步调用

            HttpClient httpClient = new HttpClient();
//获取或设置读取响应内容时要缓冲的最大字节数,要在发送请求前设置
httpClient.MaxResponseContentBufferSize = ;
//获取或设置请求超时前等待的时间跨度
httpClient.Timeout = TimeSpan.FromSeconds();
//以异步操作将 GET 请求发送给指定 URI,返回一个HttpResponseHeaders对象
HttpResponseMessage httpResponse = await httpClient.GetAsync("https://www.baidu.com/");
Console.WriteLine(httpResponse.Content.ReadAsStringAsync().Result);

添加请求头

            HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Accept","application/json;odata=verbose");

二、HttpResponseMessage 类

用于接收 http请求返回的数据和状态码

        static void Main(string[] args)
{
GetData();
Console.ReadKey();
}
private static async void GetData()
{
HttpClient httpClient = new HttpClient();
HttpResponseMessage httpResponse = null;
httpResponse = await httpClient.GetAsync("http://www.baidu.com/");
if (httpResponse.IsSuccessStatusCode)
{
//获取或设置 HTTP 响应的状态,
Console.WriteLine("HTTP 响应的状态代码: " + httpResponse.StatusCode);
//获取或设置通常由服务器发出的原因短语(与状态代码一起发出)
Console.WriteLine("服务器发出的原因短语: " + httpResponse.ReasonPhrase);
//获取 HTTP 响应标头的集合
Console.WriteLine("HTTP 响应标头信息:" + httpResponse.Headers);
//获取或设置 HTTP 响应消息的内容******
Console.WriteLine("HTTP 响应消息的内容: " + httpResponse.Content.ReadAsStringAsync().Result);
//获取或设置 HTTP 消息版本
Console.WriteLine("HTTP 消息版本: " + httpResponse.Version);
}
}
}

三、HttpRequestMessage类

表示一条 HTTP 请求消息

            HttpClient httpClient = new HttpClient();
HttpRequestMessage httpRequestMessage = new HttpRequestMessage();
//获取或设置用于 HTTP 请求的 Uri
httpRequestMessage.RequestUri= new Uri("https://www.baidu.com");
var task = httpClient.SendAsync(httpRequestMessage);
task.Result.EnsureSuccessStatusCode();
HttpResponseMessage response = task.Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);

HttpRequestHeaders 类

请求标头

四、HttpContent 类

表示 HTTP 实体正文和内容标头的基类

五、HttpMessageHandler 类

HTTP 消息处理程序的基类

HttpClient 类可以把HttpMessageHandler作为其构造函数的参数来定制请求

六、把输出结果显示为html

七、代理WebProxy

            //代理服务器的ip和端口号
WebProxy proxy = new WebProxy("45.77.xxx.xxx", );
//用户名密码
proxy.Credentials = new NetworkCredential("root","mengmeng");
var handler = new HttpClientHandler { Proxy = proxy };
var client = new HttpClient(handler);
//要访问的目的网址
HttpResponseMessage response = await client.GetAsync("https://www.youtuxx.com/?hl=zh-CN");
Console.WriteLine(await response.Content.ReadAsStringAsync());

(43)C#网络1 http的更多相关文章

  1. Linux学习43 CCNA网络知识-计算机网络基础

    一.Linux网络配置属性 1.计算机网络 TCP/IP:协议簇,协议栈(使用的模型) ISO组织制定了OSI七层模型协议栈(学习的模型) 2.网卡 a.MAC:Media Access Contro ...

  2. 伪教练技术培训之殇-2013年9月江西IDC拓行榜与综述

    纠集几个人,然后培训所谓的教练技术培训. 培训的人一期又一期的参与,国学.佛学.超能量,无所不用其极,然后就是疯狂的拿人头,邀请朋友加盟. 有甚者还披上“科技”的外衣,用“水知道答案”这种早被公知指出 ...

  3. 笔记整理--socket_server

    epoll精髓 - 彭帅 - 博客园 - Google Chrome (2013/10/11 20:47:52) epoll精髓 在linux的网络编程中,很长的时间都在使用select来做事件触发. ...

  4. 最新Java技术

    最近在网上查资料碰到好多没接触过的技术,先汇总在这里备用,以后慢慢吸收 1. JNA JNI的替代品,调用方式比JNI更直接,不再需要JNI那层中间接口,几乎达到Java直接调用动态库 2. Smal ...

  5. liunx学习笔记

    告知-----------------------------------grub启动时滚动的代码屏默认我们执行命令使用的为bash,unix使用的为csh能够通过service 程序名进行start ...

  6. Linux常用基础操作命令大全(超实用精心整理)

    相信大家都对黑客那种只用命令行对电脑操作的风格惊呆了,其实你也可以做到.linux是一款不同于windows的操作系统,而且它是黑客.渗透人员.运维人员等等必会的.如果你想学习,小编下面整理的命令将会 ...

  7. 大数据学习路线之linux系统基础搭建

    学习大数据是必须掌握一定Linux知识的,工欲善其事,必先利其器.在学习之前,首先需要搭建Linux系统,本节将讲解VMware Workstation的安装和CentOS 7系统的安装. 1.2.1 ...

  8. 系统学习Docker 践行DevOps理念

    Docker代表的容器技术是近两年的大热技术,和人工智能.区块链等热点不同,容器技术的门槛并不高,每一个开发.测试.运维人员都能在日常工作中掌握和使用,是当今IT从业人员的必备技能之一.本课程会带大家 ...

  9. Echarts词云图

    今天使用Echarts写了个词云图,之前使用pycharts生成的html就是echarts.主要代码如下,另外Echarts需要到https://www.echartsjs.com/下载,开发时使用 ...

随机推荐

  1. Bootstrap图片支持响应式

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  2. Bootstrap历练实例:表单控件状态(禁用)

    禁用的输入框 input 如果您想要禁用一个输入框 input,只需要简单地添加 disabled 属性,这不仅会禁用输入框,还会改变输入框的样式以及当鼠标的指针悬停在元素上时鼠标指针的样式. < ...

  3. 删除链表的倒数第N个节点(三种方法实现)

    删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒 ...

  4. [POJ] 1135 Domino Effect

    Domino Effect Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12147 Accepted: 3046 Descri ...

  5. ubuntu下如何对接斗鱼直播

    参考教程:https://www.cnblogs.com/liuxuzzz/p/5315998.html 大神写得挺细的,这里都不想再多说了! 为啥要做这个呢?可能真的只是为了好玩吧!!有兴趣直播的孩 ...

  6. RN与现有的原生app集成

    https://facebook.github.io/react-native/docs/integration-with-existing-apps.html RN可以很好地支持往一个原生的app上 ...

  7. perl学习之:函数总结

    一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量$@为空串,如果有错误,$@中为错误信息. 例子 ...

  8. 【php】类型转换

    $a = 9; print_r((array) $a) ; 输出: [0=>9] print_r((array) null); 输出: []

  9. MySQL学习点滴

    MySQL学习点滴 --分区表 概述: 分区功能并不是在存储引擎层完成的,因此很多存储引擎包括InnoDB, MyISAM, NDB等都支持分区功能.但也并不是所有的存储引擎都支持分区.在使用分区前, ...

  10. Python9-内置函数2-day16

    #zip方法 l = [1,2,3] l2 = ['a','b','c'] l3 = ('*','**',[1,2]) l4 = {'k1':1,'k2':2} for i in zip(l,l2,l ...