精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我又踩坑了!如何為HttpClient請求設(shè)置Content-Type標(biāo)頭?

開發(fā) 前端
平臺顯示 :簽名校驗失敗, 排查到平臺收到的Post Payload并非預(yù)期,閱讀本文,解鎖正確使用Content-Type標(biāo)頭的姿勢。

[[344474]]

本文轉(zhuǎn)載自微信公眾號「Dotnet Plus」,作者小碼甲 。轉(zhuǎn)載本文請聯(lián)系Dotnet Plus公眾號。   

最近在重構(gòu)認(rèn)證代碼,認(rèn)證過程相當(dāng)常規(guī):

  1. POST   /open-api/v1/user-info?client_id&timstamp&rd=12345&sign=***&method=hmac 
  2. content-type: application/json 
  3. payload: { "token":"AA2917B0-C23D-40AB-A43A-4C4B61CC7C74"

 

平臺顯示 :簽名校驗失敗, 排查到平臺收到的Post Payload并非預(yù)期,閱讀本文,解鎖正確使用Content-Type標(biāo)頭的姿勢。

1. 入坑

下面是構(gòu)造HttpClient對象、發(fā)起請求的代碼:

  1. // 初始化HttpClientFactory 
  2. context.Services.AddHttpClient("platform", c => 
  3.     c.BaseAddress = new Uri("https://alpha-engage.demohost.com/"); 
  4.     c.DefaultRequestHeaders.Accept 
  5.     .Add(new MediaTypeWithQualityHeaderValue("application/json")); 
  6. })... 
  7.  
  8. // 產(chǎn)生命名HttpClient,發(fā)起請求 
  9.  var client = _clientFactory.CreateClient("platform"); 
  10.  var response = await client.PostAsync($"open-api/v1/user-token/info?{req.AuthString()}",new StringContent(req.ReqPayload.ToString(),Encoding.UTF8) ); 

平臺日志顯示,收到的請求payload:

  1. {\"token\":\"AA2917B0-C23D-40AB-A43A-4C4B61CC7C74\"

額,平臺收到的JSON數(shù)據(jù)被轉(zhuǎn)碼了,沒有識別出JSON?

明眼人一看,HttpClient請求沒有設(shè)置Content-Type,接收端沒有識別出JSON 格式的payload , 進(jìn)行了轉(zhuǎn)碼,生成了錯誤簽名。

① Content-Type是一個Entity Header,指示資源的mediaType ,可用在請求/響應(yīng)中

② 代碼中new StringContent(req.ReqPayload.ToString(),Encoding.UTF8) 沒有指定mediaType參數(shù),故函數(shù)會使用text/plain默認(rèn)值

------------------------------------------

當(dāng)我嘗試添加Content-Type時(下面黃色背景行代碼):

  1. context.Services.AddHttpClient("platform", c => 
  2.     c.BaseAddress = new Uri("https://alpha-engage.demohost.com/"); 
  3.     c.DefaultRequestHeaders.Accept 
  4.          .Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header 
  5.     c.DefaultRequestHeaders.Add("content-type""application/json"); 
  6. }) 

此時拋出以下異常:

  1. InvalidOperationException: Misused header name. Make sure request headers are used with 
  2. HttpRequestMessage, response headers with HttpResponseMessage, and 
  3. content headers with HttpContent objects.  

納尼,HttpContent Headers是啥?Chrome dev tools顯示只有兩種Header啊?

 

2. 爬坑

--- 信息 舉例 .NET類型
General Header 可同時作用在請求/響應(yīng)中,但是與傳輸數(shù)據(jù)無關(guān) Upgrade、Connection ---
Request Header 將要獲取的資源或客戶端本身的信息 Accept、
Authorization
HttpRequestHeaders
Response Header 響應(yīng)信息 Location、ETag HttpResponseHeaders
Entity
Header
實體Body額外的信息 Content-Length、
Connection
HttpContentHeaders

Content-Type屬于Entity Header的一種,對應(yīng).NET類型 HttpContent Header;

雖然Entity Header不是請求標(biāo)頭也不是響應(yīng)標(biāo)頭,它們還是會包含在請求/響應(yīng)標(biāo)頭術(shù)語中(此說法來自官方)。

所以我們在Chrome DevTools沒有看到Entity Headers分組, 卻常在請求/響應(yīng)標(biāo)頭中看到Content-Type標(biāo)頭。

回到上面的異常,.NET 嚴(yán)格區(qū)分四種標(biāo)頭,所以c.DefaultRequestHeaders.Add("content-type", "application/json") 嘗試將content-type添加到請求頭,姿勢不正確,.NET提示InvalidOperationException。

3. 填坑

給這個常規(guī)的Post請求設(shè)置正確的Content-Type標(biāo)頭。

方法① 對HttpRequestMessage對象Content屬性添加Header

  1.  using (var request = new HttpRequestMessage()) 
  2.      request.Method = new HttpMethod(method); 
  3.      request.RequestUri = new Uri(url); 
  4.      request.Content = new StringContent(payload); 
  5.      request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); 
  6.      var response = await _httpClient.SendAsync(request); 
  7.      return response; 

使用HttpClient.SendAsync(request)

方法② 寫入HttpContent時傳入媒體類型

StringContent某個重載構(gòu)造函數(shù) : 參數(shù)3 可直接設(shè)置media type,

  1. var response = await client.PostAsync($"open-api/v1/user-token/info?{req.AuthString()}",new StringContent(req.ReqPayload.ToString(),Encoding.UTF8,"application/json") ); 

 

責(zé)任編輯:武曉燕 來源: Dotnet Plus
相關(guān)推薦

2022-11-18 07:34:12

Docker項目目錄

2021-09-09 18:12:22

內(nèi)存分段式網(wǎng)絡(luò)

2024-04-10 08:39:56

BigDecimal浮點(diǎn)數(shù)二進(jìn)制

2023-03-06 07:50:19

內(nèi)存回收Go

2020-09-06 10:02:32

項目管理戰(zhàn)略目標(biāo)CIO

2020-03-31 16:02:23

戴爾

2025-05-27 01:55:00

MySQL數(shù)據(jù)庫工具鏈

2022-11-27 17:21:04

ClickHouseJDBC函數(shù)

2024-05-06 00:00:00

緩存高并發(fā)數(shù)據(jù)

2020-04-14 10:06:20

微服務(wù)Netflix語言

2019-10-30 14:44:41

Prometheus開源監(jiān)控系統(tǒng)

2025-08-21 08:03:22

MySQLPostgreSQL類型

2025-02-18 15:17:59

2024-11-20 18:16:39

MyBatis批量操作數(shù)據(jù)庫

2021-07-28 05:01:29

Lombok前端測試

2020-12-22 09:34:20

JavaScript開發(fā)技術(shù)

2022-12-07 15:37:32

參數(shù)不定參數(shù)

2023-01-18 23:20:25

編程開發(fā)

2020-09-15 08:46:26

Kubernetes探針服務(wù)端

2023-05-15 20:11:34

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

亚洲欧美视频在线观看视频| 美国毛片一区二区| 亚洲欧美在线第一页| 日本黄网站免费| www.av在线| 国产福利一区二区三区在线视频| 久久久久久国产精品久久| 午夜一区二区三区免费| 日本成人一区二区| 亚洲福利视频一区二区| 色姑娘综合网| 国产女同91疯狂高潮互磨| 最新成人av网站| 日韩在线播放av| 手机在线看片日韩| 精品国产一区二区三区2021| 色综合婷婷久久| 成人av在线播放观看| 国产日韩精品在线看| 岛国一区二区在线观看| 国产一区二区在线免费视频| 国产又爽又黄的视频| 欧美aⅴ99久久黑人专区| 亚洲四色影视在线观看| 中文字幕一区二区人妻电影丶| 欧美一区二区三区婷婷| 色综合色综合色综合| 国产情侣第一页| 毛片在线视频| 国产午夜精品久久久久久免费视 | 免费一级全黄少妇性色生活片| 九九综合九九| 日韩福利视频在线观看| 国产又粗又猛大又黄又爽| 人人玩人人添人人澡欧美| 色欧美片视频在线观看在线视频| 精品视频在线观看一区| 欧美日韩经典丝袜| 亚洲视频狠狠干| 一区二区三区四区视频在线| 国产大学生校花援交在线播放| 91丨porny丨首页| 国产在线欧美日韩| 草草视频在线播放| 国产乱码精品一区二区三区五月婷 | 国产在线综合视频| 国产欧美一区二区三区精品观看| 精品无人区乱码1区2区3区在线 | 精品综合久久88少妇激情| 日韩视频一区二区| ass极品水嫩小美女ass| 日本免费精品| 日韩天堂在线观看| 日本一级大毛片a一| jizz国产精品| 精品国产91乱码一区二区三区| 少妇献身老头系列| y111111国产精品久久久| 精品国产sm最大网站| 手机免费看av片| 色先锋久久影院av| 亚洲日本成人网| 国产99在线 | 亚洲| 日韩欧美高清| 麻豆成人在线看| 久久久久人妻一区精品色欧美| 国产精品激情| 日本不卡免费高清视频| 日本成人一级片| 久久99精品视频| 99在线国产| 手机av免费在线观看| 久久影视一区二区| 一区二区日本伦理| 成人免费高清观看| 色综合天天综合色综合av| 浓精h攵女乱爱av| 精品中文字幕一区二区三区| 欧美精品一区二区三区蜜桃视频| 欧美做受喷浆在线观看| 成人看的视频| 欧美精品激情在线| 成人免费毛片男人用品| 国模娜娜一区二区三区| 久久99久久99精品蜜柚传媒| av在线1区2区| 一区二区三区不卡视频在线观看| 91精品91久久久中77777老牛| a∨色狠狠一区二区三区| 日韩欧美电影一区| 美女脱光内衣内裤| 欧美精品国产| 国产精品国产福利国产秒拍 | 免费看av软件| 九九色在线视频| 色综合久久99| 久久久无码人妻精品无码| 国产99精品| 色综合久久中文字幕综合网小说| 一级成人黄色片| 国产成人综合视频| 少妇特黄a一区二区三区| 欧美videos另类精品| 欧美午夜影院一区| 欧美肉大捧一进一出免费视频 | 久久精品视频网| 热久久最新地址| 美女网站视频一区| 亚洲成人av片| 麻豆成人在线视频| 蜜桃在线一区二区三区| 久久精品国产精品青草色艺| 91精品国产91久久久久久青草| 色欧美日韩亚洲| 性色av蜜臀av浪潮av老女人 | 国产日产精品一区| 免费观看国产精品视频| 麻豆久久一区| 日韩中文在线中文网三级| 日本视频在线观看免费| 成人午夜私人影院| 91看片淫黄大片91| 日韩免费在线电影| 色妞欧美日韩在线| 波多野结衣黄色| 91麻豆成人久久精品二区三区| 人妻av无码专区| 国产成人免费av一区二区午夜 | 欧美在线一区二区三区四区| 91资源在线观看| 日韩欧美久久久| 污软件在线观看| 久国产精品韩国三级视频| 日韩久久精品一区二区三区| 中文字幕这里只有精品| 日韩精品免费在线播放| 精品美女久久久久| 91在线国产观看| 国产a级片网站| 亚洲精品a区| 欧美老肥婆性猛交视频| av天堂一区二区三区| 亚洲手机成人高清视频| 在线视频日韩欧美| 欧美~级网站不卡| 99蜜桃在线观看免费视频网站| 直接在线观看的三级网址| 日韩午夜激情免费电影| 国产性70yerg老太| 成人sese在线| 国产美女无遮挡网站| 台湾佬综合网| 国产精品久久久久77777| 成年人在线看| 欧美精品v日韩精品v韩国精品v| av片在线免费看| 国模一区二区三区白浆 | 日韩成人伦理电影在线观看| 日韩美女一区| 亚洲男男av| 久久99久久亚洲国产| 日本成人动漫在线观看| 欧美日韩国产色视频| 色哟哟精品观看| 麻豆91在线观看| 最近免费观看高清韩国日本大全| 精品国产三级| 韩国精品久久久999| 欧美zozo| 制服丝袜亚洲色图| 国产一级久久久| 久久人人爽人人爽| 8x8x成人免费视频| 国产精品第十页| 日本在线观看一区| www.成人| 琪琪第一精品导航| 日韩精品毛片| 亚洲成年网站在线观看| 最近中文字幕在线观看视频| 亚洲日本青草视频在线怡红院| 丰满岳乱妇一区二区| 日韩国产欧美一区二区三区| 特色特色大片在线| 亚洲三级网址| 亚洲影院高清在线| av高清不卡| 久久九九热免费视频| 午夜性色福利视频| 在线不卡一区二区| 亚洲永久精品在线观看| 亚洲欧美日韩久久| 性欧美丰满熟妇xxxx性仙踪林| 久草精品在线观看| 久久网站免费视频| 欧美a级片一区| 日本一区二区在线视频观看| 免费一级欧美在线大片| 日本欧美爱爱爱| 色av手机在线| 自拍亚洲一区欧美另类| 婷婷视频在线观看| 日韩一区二区在线看| 免费看毛片网站| 亚洲国产精品影院| 色老板免费视频| 久久久综合九色合综国产精品| 亚洲免费av一区| 久久九九国产| 男人插女人视频在线观看| 五月天久久网站| 三级三级久久三级久久18| 精品国产午夜肉伦伦影院| 91精品国产综合久久香蕉最新版| 波多视频一区| 91国产视频在线| 欧美人与动牲性行为| 精品国产一区二区在线| 国模精品一区二区| 亚洲乱码国产乱码精品精| 成人午夜免费福利| 日韩无一区二区| 国产精品久久久久久久免费看| 色婷婷狠狠综合| 国产黄色片免费看| 精品高清美女精品国产区| 久草国产在线视频| 一区2区3区在线看| 日本妇女毛茸茸| 18成人在线观看| 午夜国产福利视频| 国产精品免费免费| 岛国片在线免费观看| 国产精品婷婷午夜在线观看| 少妇无套高潮一二三区| 久久影院视频免费| 免费黄色在线视频| 久久这里只有精品6| 能免费看av的网站| 久久久久久久久一| 日韩精品电影一区二区| 久久一区二区视频| 在线不卡av电影| 日本一区二区三级电影在线观看| 蜜桃传媒一区二区亚洲| 国产喂奶挤奶一区二区三区| 国产人妻大战黑人20p| 国产视频不卡一区| 日韩av片在线免费观看| 国产精品高潮呻吟| 国产成人av免费在线观看| 亚洲人午夜精品天堂一二香蕉| 久草视频手机在线| 一区二区三区精品在线观看| 精品少妇一二三区| 天天色图综合网| 免费视频网站在线观看入口| 欧美伊人久久大香线蕉综合69| 亚洲中文字幕在线观看| 欧美一区三区二区| 国精产品乱码一区一区三区四区| 日韩av影片在线观看| 国产午夜在线视频| 久久久国产成人精品| 久草免费在线色站| 欧美综合激情网| 视频91a欧美| 国产99视频精品免费视频36| 7777精品| 日本在线观看一区| 综合日韩在线| 91猫先生在线| 久久99精品久久久久久动态图| 五月天国产视频| 久久综合九色综合欧美就去吻| 女人裸体性做爰全过| 亚洲一区电影777| 日本欧美www| 精品欧美一区二区三区精品久久 | 一区二区视频免费观看| 欧美一级生活片| 日本亚洲欧美| 久久中国妇女中文字幕| 性欧美18~19sex高清播放| 国产精自产拍久久久久久| av日韩精品| 永久域名在线精品| 亚洲毛片播放| 国产3p在线播放| 91蜜桃免费观看视频| 国产美女久久久久久| 欧美性xxxxxx| 精品国自产在线观看| 国产亚洲aⅴaaaaaa毛片| 成人看片免费| 国产suv精品一区二区三区88区| 激情视频亚洲| 日韩一区二区三区资源| 91久久亚洲| 麻豆网站免费观看| 国产欧美久久久精品影院| 国产主播在线播放| 欧美精品1区2区| 撸视在线观看免费视频| 久久久久久久香蕉网| 日本久久久久| 欧美日韩在线观看一区二区三区| 欧美涩涩网站| 国产永久免费网站| 国产日韩欧美综合在线| 日韩精品视频免费看| 欧美一卡二卡三卡| 午夜精品一区| 日韩av三级在线观看| 老牛影视av一区二区在线观看| 四虎影院一区二区| 免费在线观看成人| 亚洲AV无码国产成人久久| 图片区小说区区亚洲影院| 国内精品久久久久久久久久| www国产亚洲精品久久网站| 裤袜国产欧美精品一区| 国产伦视频一区二区三区| 欧美一区高清| 天天做天天干天天操| 国产精品网站导航| 中文天堂在线资源| 伊人精品在线观看| 国模一区二区| 日本午夜精品一区二区三区| 亚洲在线国产日韩欧美| 中文字幕乱码在线| 午夜欧美在线一二页| 蜜臀av免费在线观看| 欧美国产日本高清在线| 亚洲精品a区| 黄色激情在线视频| 成人午夜免费av| 日韩大片免费在线观看| 亚洲国产成人精品一区二区| h片视频在线观看| 精品免费视频123区| 亚洲精品影院在线观看| 在线视频 日韩| 欧美视频中文字幕在线| 蝌蚪视频在线播放| 国产精品久久久久久久久影视| 欧美限制电影| 日韩中文字幕二区| 国产日韩高清在线| 一二三区在线播放| 久久亚洲一区二区三区四区五区高| www.91精品| 国产妇女馒头高清泬20p多| 成人av动漫在线| 精品久久久久久久久久久久久久久久| 亚洲欧美日韩在线一区| 91在线亚洲| 男人的天堂视频在线| 波多野结衣视频一区| 91丝袜一区二区三区| 中文字幕一区二区三区电影| 国产日韩欧美中文在线| 日本中文字幕亚洲| 久久综合av免费| 国产精品熟女久久久久久| 欧美丰满片xxx777| 亚洲另类av| 不卡的在线视频| 亚洲第一成人在线| 国产毛片在线| 91视频婷婷| 亚洲在线一区| 亚洲二区在线播放| 亚洲精品美女久久久久| 99久久综合国产精品二区| av在线com| 久久先锋影音av鲁色资源网| 一级片在线免费观看视频| 欧美激情在线狂野欧美精品| 国产精品美女久久久久久不卡| 自拍偷拍一区二区三区四区| 亚洲一区二区视频在线| 国产视频第一区| av色综合网| 青草av.久久免费一区| 久久久久久久久精| 在线成人激情视频| 97品白浆高清久久久久久| 成人在线激情网| 一个色综合网站| 成人av一区| 久久久久久久有限公司| 国内精品久久久久影院薰衣草| 久久露脸国语精品国产91| 久久久成人av| 精品国产123区| 久久精品女同亚洲女同13| 91精品国产91久久久久久一区二区| 亚洲最大成人|