我有一个
> Auth URL(恰好是一个
“https://login.microsoftonline.com/ ……”)如果有帮助的话.
>访问令牌URL“https://service.endpoint.com/api/oauth2/token”
> ClientId“abc”
> Clientsecret“123”
然后,我需要在标头中使用承载令牌进行get调用.
我可以在Postman中使用它,但是试图弄清楚如何在C#中实现它.我一直在使用RestSharp(但对其他人开放).这一切看起来都是不透明的,当我认为它非常直接时:/它是一个控制台应用程序,所以我不需要花里胡哨.
最终,我希望我的应用程序(以编程方式)获取令牌,然后将其用于后续调用.我很感激任何人指点我的文档或例子,这解释了我明显的意思.我遇到的一切都是部分的,或者用于不同流程的服务.
谢谢.
解决方法
在Postman中,单击Generate Code,然后在Generate Code Snippets对话框中,您可以选择不同的编码语言,包括C#(RestSharp).
此外,您应该只需要访问令牌URL.然后表单参数:
grant_type=client_credentials client_id=abc client_secret=123
代码片段:
var client = new RestClient("https://service.endpoint.com/api/oauth2/token"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control","no-cache"); request.AddHeader("content-type","application/x-www-form-urlencoded"); request.AddParameter("application/x-www-form-urlencoded","grant_type=client_credentials&client_id=abc&client_secret=123",ParameterType.RequestBody); IRestResponse response = client.Execute(request);
然后,您可以从响应正文中获取访问令牌.例如,对于Bearer令牌类型,您可以将以下标头添加到后续经过身份验证的请求中:
request.AddHeader("authorization","Bearer <access_token>");