[英]Howto access REST API methods without username and Password - but only with a token?
我正在尝试使用来自 c#/.net 的令牌访问/调用 REST API 中的方法-但我无法得到任何响应。 我有很多 googlet - 但没有任何成功:-( 我是通过 REST API 调用方法的新手。
我有一个端点和一个令牌,需要用来与 REST API 进行通信。 我需要通过这些方法在服务器上获取、发布、放置和删除数据
API 的输出采用 JSON 格式。
也许这很简单 - 但我不知道该怎么做。
任何帮助表示赞赏。
我尝试了以下解决方案 - 但没有成功:-(
private static async void DoIt()
{
using (var stringContent = new StringContent("{ \"firstName\": \"Andy\" }", System.Text.Encoding.UTF8, "application/json"))
using (var client = new HttpClient())
{
try
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", token);
// 1. Consume the POST command
var response = await client.PostAsync(endpoint, stringContent);
var result = await response.Content.ReadAsStringAsync();
//Console.WriteLine("Result from POST command: " + result);
// 2. Consume the GET command
response = await client.GetAsync(endpoint);
if (response.IsSuccessStatusCode)
{
var id = await response.Content.ReadAsStringAsync();
//Console.WriteLine("Result from GET command: " + result);
}
}
catch (Exception ex)
{
//Console.ForegroundColor = ConsoleColor.Red;
//Console.WriteLine(ex.Message);
//Console.ResetColor();
}
}
}
在您的代码中,您使用“Basic”初始化AuthenticationHeaderValue
,这意味着基于用户名和密码的基本身份验证。 如果你有一个令牌,你可以这样做:
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ACCESS_TOKEN);
用您拥有的令牌替换 ACCESS_TOKEN。
这是最可能的解决方案,但我只能在这里猜测,因为我不知道您尝试访问的 API。 如果它仍然不起作用,请尝试省略“Bearer”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.