C#客户端HttpClient请求认证及数据传输_第1页
C#客户端HttpClient请求认证及数据传输_第2页
C#客户端HttpClient请求认证及数据传输_第3页
C#客户端HttpClient请求认证及数据传输_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C#客户端HttpClient请求认证及数据传输}

可以看到Basic认证的安全程度非常低,多用于路由器和嵌入式设备,而且往往不会使用HTTPS。

2.JWT认证示例

//Jwt认证

publicasyncTaskBearer(stringtoken,stringurl)

//HttpClientHandler及其派生类使开发人员能够配置各种选项,包括从代理到身份验证。

//helpLink/en-us/dotnet/api/.http.httpclienthandlerview=netframework-4.8

varhttpclientHandler=newHttpClientHandler();

//如果服务器有https证书,但是证书不安全,则需要使用下面语句

//=也就是说,不校验证书,直接允许

httpclientHandler.ServerCertificateCustomValidationCallback=(message,cert,chain,error)=true;

using(varhttpClient=newHttpClient(httpclientHandler))

//创建身份认证

//System.Net.Http.Headers.AuthenticationHeaderValue;

httpClient.DefaultRequestHeaders.Authorization=newAuthenticationHeaderValue("Bearer",token);

awaithttpClient.GetAsync(url);

httpClient.Dispose();

}

JWT认证,需要客户端携带token,token是一段加密过的字符串,关于原理这里不多说,token是通过客户端header携带的。

另外,对于测试的Web应用或者内网应用,HTTPS证书可能不是公网国际认证的证书,就需要跳过认证,直接允许访问使用。

varhttpclientHandler=newHttpClientHandler()

ServerCertificateCustomValidationCallback=(message,cert,chain,error)=true,

};

3.Cookie示例

HttpClient中,Cookie有两种处理方式。

一种是已经知道Cookie,直接将Cookie存储到HttpClient中;另一种是还没有Cookie,通过账号密码登录获取到Cookie,自动存储到HttpClient对象中,接着使用当前HttpClient对象请求URL。

两种方式的设定,是通过HttpClientHandler的UseCookies属性设置的。

示例

varhttpclientHandler=newHttpClientHandler()

UseCookies=true

};

​UseCookies获取或设置一个值,该值指示处理程序是否使用CookieContainer属性存储服务器Cookie,并在发送请求时使用这些Cookie。

方式1:

//先用账号密码登陆再请求

publicasyncTaskCookie(stringuser,stringpassword,stringloginUrl,stringurl)

varhttpclientHandler=newHttpClientHandler()

ServerCertificateCustomValidationCallback=(message,cert,chain,error)=true,

UseCookies=true

//如果服务器有https证书,但是证书不安全,则需要使用下面语句

//=也就是说,不校验证书,直接允许

varloginContent=newFormUrlEncodedContent(new[]

newKeyValuePairstring,string("user",user),

newKeyValuePairstring,string("password",password)

using(varhttpClient=newHttpClient(httpclientHandler))

//先登陆

varresult=awaithttpClient.PostAsync(loginUrl,loginContent);

//登陆成功后,客户端会自动携带cookie,不需要再手动添加

//if(result.IsSuccessStatusCode)

///*

//*如果请求成功

//*/

varresult2=awaithttpClient.GetAsync(url);

//httpclient已经携带Cookie,可以多次使用

//varresult3=awaithttpClient.GetAsync(url3);

//varresult4=awaithttpClient.GetAsync(url4);

httpClient.Dispose();

}

方式2:

//已经拿到cookie,直接使用cookie请求

publicasyncTaskCookie(stringcookie,stringurl)

varhttpclientHandler=newHttpClientHandler()

ServerCertificateCustomValid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论