自定义httpclient请求标头字符串格式

问题描述

我需要使用HTTPClient发出HTTP请求。 Web API要求我添加此格式的自定义标头:

标题:授权:consumer={consumerId}consumerToken={consumerTokenValue}

以下是代码

string headr = "consumer=40816499,consumerToken=" + "test";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Clear();
            
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization",headr);
var response =await client.PostAsJsonAsync<remitaData>(url,remd);
var chk = await response.Content.ReadAsstringAsync();

但是我在执行时收到此错误消息:

值'consumer = 40816499,consumerToken = test'的格式无效。

解决方法

您需要在标题的开头放置一个“类型”。例如:

client.DefaultRequestHeaders.Add("Authorization","custom " + headr);

(其中字符串“ custom”由服务器定义)。

请参见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization(或