9159金沙游艺场-奥门金沙游艺场-[欢迎您]

9159金沙游艺场为您呈现最新的面貌!,目前注册送体验金,欢迎您将成为影视娱乐行业新的风向标,是亚洲的优质娱乐先锋。

HttpClient【9159金沙游艺场】 使用

日期:2019-10-07编辑作者:办公软件

Api支持

HttpClient 是基于Task的异步方法组,支持取消、超时异步特性,其可以分类为以下:

Restful: GetAsync,PostAsync,DeleteAsync,PutAsync

HttpHeaders属性:DefaultRequestHeaders

Timeout属性:Timeout,相比HttpRequest的参数,更加地智能,用TimeSpan替换了int。

Get扩展(本质上是封装了GetAsync()):GetStringAsync,GetStreamAsync,

GetByteArrayAsync

SendAsync:Restful的实现应该是封装了此方法。需要一个HttpRequestMessage作为参数。

HttpContent

使用post方式请求示例:

public static async Task<string> CreateUrlAsync(string url, Dictionary<string, string> parameters, string accessToken, int timeount = 10)
{
    HttpClient httpClient = new HttpClient(new MyHttpClientHandlerProxy(accessToken));
    httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
    httpClient.Timeout = TimeSpan.FromSeconds(timeount);

    FormUrlEncodedContent content = new FormUrlEncodedContent(parameters);
    var response = await httpClient.PostAsync(url, content);
    var str = await response.Content.ReadAsStringAsync();

    return str;
}

其他的Content类型:

StreamContent,StringContent,MutilpartContent,MultipartFormDataContent

HttpClientHandler

作为一个代理角色,可以支持自定义的处理方式。

public class MyHttpClientHandlerProxy : HttpClientHandler
{
    private string accessToken;
    public MyHttpClientHandlerProxy(string accessToken)
    {
        this.accessToken = accessToken;
    }

    protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
        //处理Headers
        request.Headers.Referrer = new Uri("www.imctf.com");
        request.Headers.Add("Authorization", "Bearer " + accessToken);
        request.Headers.Add("UserAgent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727)");

        //执行
        var response = await base.SendAsync(request, cancellationToken);

        //处理编码
        var contentType = response.Content.Headers.ContentType;
        if (string.IsNullOrEmpty(contentType.CharSet))
        {
            contentType.CharSet = "GBK";
        }

        return response;
    }
}

使用:

HttpClient httpClient = new HttpClient(new MyHttpClientHandlerProxy(accessToken));

Java语言使用HttpClient模拟浏览器登录  http://www.linuxidc.com/Linux/2016-05/131214.htm

HttpClient4.3 关于https 中SSL证书请求问题 http://www.linuxidc.com/Linux/2016-04/130090.htm

HttpClient4 用法 由HttpClient3 升级到 HttpClient4 必看  http://www.linuxidc.com/Linux/2015-06/119100.htm

HttpClient 教程  http://www.linuxidc.com/Linux/2015-06/119099.htm

使用HttpClient实现文件的上传下载 http://www.linuxidc.com/Linux/2014-07/104303.htm

Android 实现 HttpClient 请求Https  http://www.linuxidc.com/Linux/2014-05/102306.htm

Android使用HttpClient下载图片 http://www.linuxidc.com/Linux/2014-05/101855.htm

HttpClient使用详解  http://www.linuxidc.com/Linux/2014-08/104945.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134582.htm

9159金沙游艺场 1

本文由9159金沙游艺场-奥门金沙游艺场-[欢迎您]发布于办公软件,转载请注明出处:HttpClient【9159金沙游艺场】 使用

关键词:

thymeleaf实现基础crud

Spring boot(三)整合mybaties+thymeleaf达成基础crud,mybatiescrud 工程组织: 首先在pom文件中引进信任 ?xml version="1.0" encoding="UT...

详细>>

java中堆和栈的区别9159金沙游艺场

java中堆和栈的区别,java区别 堆和栈都是Java用来在RAM中存放数据的地方。 堆 (1) Java的堆是一个运行时数据区,类...

详细>>

Linux教程之磁盘配额

1.什么是quota 简单的说就是限制用户对磁盘空间的使用量。 因为Linux是多用户多任务的操作系统,许多人共用磁盘空间...

详细>>

正则表达式

1.1  正则表达式的概念 正则表达式 (英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使...

详细>>