【问题标题】:OAuth with RestSharp使用 RestSharp 进行 OAuth
【发布时间】:2022-01-03 09:35:39
【问题描述】:

我正在尝试从 FedEx Api Authorization (OAUTH2) 获取访问令牌。文档在示例中列出了这一点:

var client = new RestClient("https://apis-sandbox.fedex.com/oauth/token");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer ");
request.AddHeader("X-locale", "en_US");
request.AddHeader("Content-Type", "application/json");

// 'input' refers to JSON Payload
request.AddParameter("undefined", input, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

我对格式感到困惑

request.AddParameter("undefined", input, ParameterType.RequestBody);

“未定义”和输入究竟应该是什么?输入应该是一个 json 对象,但字符串应该只是“未定义”吗? 我关注的联邦快递 api 文档位于: https://developer.fedex.com/api/en-us/catalog/authorization/v1/docs.html#operation/API%20Authorization

【问题讨论】:

  • 能否提供 API 文档的链接?

标签: asp.net-core asp.net-web-api


【解决方案1】:

我假设您指的是this API description 页面上的示例。看起来他们的 C# 代码示例中有一个错误。他们似乎使用Redoc 来生成 API 文档和代码示例。这是一个基于javascript 的工具,因此可以解释undefiuned 值。

RestSharp expects Content-Type 值作为RequestBody 参数的名称:

参数名称将用作请求的Content-Type 标头

所以我的理解是 C# 示例应该如下所示:

var client = new RestClient("https://apis-sandbox.fedex.com/address/v1/addresses/resolve");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer ");
request.AddHeader("X-locale", "en_US");
request.AddHeader("Content-Type", "application/json");

// 'input' refers to JSON Payload
request.AddParameter("application/json", input, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多