C#使用HttpClient进行http操作方式

 更新时间:2023年11月07日 16:21:07   作者:whereismatrix  
这篇文章主要介绍了C#使用HttpClient进行http操作方式,具有很好的参考价值,希望对大家有所帮助,

C#使用HttpClient进行http操作

在.Net 4.5中增加了一个新的System.Net.Http.HttpClient名字空间(在 System.Net.Http.dll 中)。

其中 提供了用于发送 HTTP 请求和接收 HTTP 响应的API。

基本操作

和以前的HttpWebRequest相比,HttpClient更加简洁,下面就是一个下载www.baidu.com页面的示例:

    string uri = "http://www.baidu.com/";
    HttpClient client = new HttpClient();
    string body = await client.GetStringAsync(uri); 

GetStringAsync()之外,还有GetByteArrayAsync()GetStreamAsync()PostAsync ()DeleteAsync()等函数,可用选择使用。

一个重要的特点就是: 所有的函数操作都是异步的。

获取响应

最简单的函数是HttpClient.GetStringAsync(), 用这个函数的时候,调用操作并不会阻塞,我们看不到HttpResponse的相关信息,如果需要看到Http响应的信息,可以用如下标准方式:

Product product = null;
    HttpResponseMessage response = await client.GetAsync(path);
    if (response.IsSuccessStatusCode)
    {
        product = await response.Content.ReadAsAsync<Product>();
    }
    return productt;

这里使用HttpResponseMessage.

C# httpclient发送请求报错

在c#当中使用httpclient发送http请求,代码如下:

string customTableServiceUrl = "https://localhost:5001/api/XXX/";
    
HttpClient httpClient = new HttpClient();
 
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete,
    customTableServiceUrl + "CLEVER/entries/2006");
 
var apiResponse = await httpClient.SendAsync(request);

但是在执行的时候却报错如下:

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

在定义HttpClient的代码前加上一行代码解决了我的问题:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };      

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解CLR的内存分配和回收机制

    详解CLR的内存分配和回收机制

    本文详细讲解了CLR的内存分配和回收机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 浅谈C#中[]的几种用法

    浅谈C#中[]的几种用法

    本文主要介绍了浅谈C#中[]的几种用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 使用C#连接SQL Server的详细图文教程

    使用C#连接SQL Server的详细图文教程

    初学者学习上位机开发遇到数据库连接不上,是很常见的情况,可能会以各种形式呈现出来,下面这篇文章主要给大家介绍了关于使用C#连接SQL Server的详细图文教程,需要的朋友可以参考下
    2023-02-02
  • C#中{get;set;}的具体使用

    C#中{get;set;}的具体使用

    本文主要介绍了C#中{get;set;}的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • C#连接MySql数据库的方法

    C#连接MySql数据库的方法

    最近两天在解决C#连接MySql数据库的问题,通过不同的从网上学习,最终找到了解决的办法,现在和大家分享一下
    2013-10-10
  • C#调用dos窗口获取相关信息的方法

    C#调用dos窗口获取相关信息的方法

    这篇文章主要介绍了C#调用dos窗口获取相关信息的方法,涉及C#调用dos窗口及进程操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 解析C#设计模式编程中适配器模式的实现

    解析C#设计模式编程中适配器模式的实现

    这篇文章主要介绍了C#设计模式编程中适配器模式的实现,分别举了类的对象适配器与对象的适配器模式的例子,需要的朋友可以参考下
    2016-02-02
  • C#微信公众号开发之用户上下文WeixinContext和MessageContext

    C#微信公众号开发之用户上下文WeixinContext和MessageContext

    这篇文章介绍了C#微信公众号开发之用户上下文WeixinContext和MessageContext,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#设计模式之单例模式

    C#设计模式之单例模式

    这篇文章介绍了C#设计模式之单例模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#日期转换函数分享

    C#日期转换函数分享

    这篇文章介绍了C#日期转换函数,有需要的朋友可以参考一下
    2013-10-10

最新评论