欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

HttpWebRequest 改为 HttpClient 踩坑记-请求头设置

程序员文章站 2022-04-14 17:08:06
HttpWebRequest 改为 HttpClient 踩坑记 请求头设置 Intro 这两天改了一个项目,原来的项目是.net framework 项目,里面处理 HTTP 请求使用的是 WebReauest,但是 WebRequest 已经不再推荐使用了,你如果在项目中使用的话,编译器会警告, ......

httpwebrequest 改为 httpclient 踩坑记-请求头设置

intro

这两天改了一个项目,原来的项目是.net framework 项目,里面处理 http 请求使用的是 webreauest,但是 webrequest 已经不再推荐使用了,你如果在项目中使用的话,编译器会警告, webrequest已过时,新项目要 .net standard 重写就直接 httpclient 来处理 http 请求了,在改的过程中踩了几个坑,记录一下

请求头处理

httpclient 通常如果要添加请求头的话。一般这样添加:

 var requestmessage = new httprequestmessage(_httpmethod, requesturl)
 {
       content = new stringcontent(postdata, encoding.utf8, "appplication/json")
 };
 //
requestmessage.headers.tryaddwithoutvalidation("date", date);

但是有些请求头这样加是可以的,但是有些请求头就不行了,这次就遇到了两个例外,一个是 content-type,一个是 content-md5 这两个请求头。

设置请求头 content-type

正确姿势:

requestmessage.content.headers.contenttype = new system.net.http.headers.mediatypeheadervalue(contenttype);

设置请求头 content-md5

正确姿势:

requestmessage.content.headers.tryaddwithoutvalidation("content-md5", contentmd5);

reference