我正在尝试使用< 客户端凭据流' 客户端凭据流下定义的过程来请求访问令牌。在Spotify developer page上,
这是我当前的实现(当前返回http 400错误):
using (var client = new HttpClient())
{
var requestBody = new StringContent(
"grant_type:client_credentials",
Encoding.UTF8,
"application/x-www-form-urlencoded");
var requestEncrypted = Convert.ToBase64String(
Encoding.UTF8.GetBytes(ClientId + ":" + ClientSecret));
client.DefaultRequestHeaders.Add(
"Authorization",
$"Basic {requestEncrypted}");
var tokenResult = await client.PostAsync(TokenEndpoint, requestBody);
}
我尝试了其他格式化请求体的方法,包括json(注意:将编码类型更改为' application / json'导致http 415错误(不支持媒体)
答案 0 :(得分:3)
首先,你需要使用equals而不是冒号。
grant_type=client_credentials
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials