【发布时间】:2019-11-18 03:01:38
【问题描述】:
我正在尝试使用 C# 连接到 URL。
基本上我正在尝试做与 CURL 相同的事情:
curl -i -k --user ABC..:XYZ.. --data "grant_type=client_credentials" https://www.example.com/oauth/token
这是我的 C# 代码:
// Get the URL
string URL = "https://www.example.com/oauth/token";
//Create the http client
HttpClient client = new HttpClient();
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, URL);
requestMessage.Headers.Add("contentType", "application/x-www-form-urlencoded");
requestMessage.Headers.Add("data", "grant_type=client_credentials");
requestMessage.Headers.Add("user", "ABC..:XYZ..");
//Connect to the URL
HttpResponseMessage response = client.SendAsync(requestMessage).Result;
// Get the response
string Output = response.Content.ReadAsStringAsync().Result;
Curl 代码效果很好。我得到一个 200 状态响应。但是在 C# 中,我得到了响应:401,未经授权。似乎没有以正确的格式提供客户端 ID 和密钥。
请问有人知道我的 C# 代码中缺少什么吗?
谢谢, 干杯
【问题讨论】:
-
删除标题。此外,基本身份验证应该是客户端的属性
-
@theMayer 你的意思是我必须删除标题吗?如果是这样,我应该把客户端凭据放在哪里?
-
你想搞定吗?您不能使用 get 发布数据。我认为你需要一个帖子。
-
@theMayer 当我使用 Post 时,我收到错误:401,未经授权
-
这是因为
--user ABC..:XYZ..和requestMessage.Headers.Add("user", "ABC..:XYZ..");不一样,我会发一个答案解释更多
标签: c#