依赖下载
下载 RestSharp
使用案例
案例网址:developer.fedex.com/api/zh-cn/c…
以FedEx请求获取token为例:
要求请求头输入 content-type , 请求体分别输入grant_type, client_id 和 client_secert
var apiAddress = "https://apis-sandbox.fedex.com/oauth/token";
var client = new RestClient(apiAddress);
// 指定请求方式
var request = new RestRequest
{
Method = Method.Post,
};
// 添加请求头内容
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
// 添加请求体内容
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("client_id", ConfigHelper.GetStrByPath("ClientInfo:ClientId"));
request.AddParameter("client_secret", ConfigHelper.GetStrByPath("ClientInfo:ClientSecret"));
// 发送请求
RestResponse restResponse = client.Execute(request);
// 获取响应信息
string content = restResponse.Content;
// await Console.Out.WriteLineAsync(content);
string token = "";
// 根据成功与否,分别序列化结果
if (restResponse.IsSuccessful)
{
SuccessResponse? successResponse = JsonSerializer.Deserialize<SuccessResponse>(content);
token = successResponse.access_token;
Console.Out.WriteLineAsync("\r\n" + successResponse.access_token);
}
else
{
ErrorResponse? errorResponse = JsonSerializer.Deserialize<ErrorResponse>(content);
Console.Out.WriteLineAsync("\r\n" + errorResponse.errors[0].message);
throw new Exception(errorResponse.errors[0].message);
}
补充
此外,若请求体结构复杂,以下图为例:
可使用 request.AddJsonBody(xxxx) 传入实体类.
使用演示
假设请求的api要求请求体为上图所示结构
可以先复制样例数据,进入 json2csharp.com/ ,转化为对应实体类
然后根据业务需求填充该请求体内容
最后调用 request.AddJsonBody(xxxx)
将请求体传入,其他步骤和之前一样