1.使用Nuget安装RestSharp
2.编写一个调用的封装方法类,Get和Post方法。
using RestSharp;
/// <summary>
/// ApiHelper.
/// </summary>
public class ApiHelper
{
/// <summary>
/// Post方式调用的接口方法.
/// </summary>
/// <param name="input">入参.</param>
/// <returns>接口返回的结果string.</returns>
public static string PostApi(ApiInput input)
{
string contentType = "application/json";
// 调用接口
var client = new RestClient(input.ApiUrl);
var request = new RestRequest(string.Empty, Method.Post);
request.Timeout = 1000 * 60 * 5; // 限制时间 5分钟
request.AddParameter(contentType,input.PostParams, ParameterType.RequestBody);
request.AddHeader("Content-Type", "application/json");
var response = client.Execute(request);
var content = response.Content;
return content;
}
/// <summary>
/// Get方式调用的接口方法.
/// </summary>
/// <param name="input">入参.</param>
/// <returns>接口返回的结果string.</returns>
public static string GetApi(ApiInput input)
{
// 调用接口
var client = new RestClient(input.ApiUrl);
var request = new RestRequest(string.Empty, Method.Get);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Content-Type", "application/json");
request.Timeout = 1000 * 60 * 5; // 限制时间 5分钟
foreach (var item in input.GetParams)
{
request.AddParameter(item.Key, item.Value.ToString());
}
var response = client.Execute(request);
var content = response.Content;
return content;
}
/// <summary>
/// Get方式调用的接口方法无参数.
/// </summary>
/// <param name="input">入参.</param>
/// <returns>接口返回的结果string.</returns>
public static string GetApiNoParam(ApiInput input)
{
var client = new RestClient(input.ApiUrl);
var request = new RestRequest();//get提交
var response = client.Execute(request);
var content = response.Content;
return content;
}
}
- ApiInput代码
using System.Collections.Generic;
using System.Text.Json.Serialization;
namespace Application.CommonDto
{
/// <summary>
/// 调用api接口的入参.
/// </summary>
public class ApiInput
{
/// <summary>
/// api接口地址.
/// </summary>
public string ApiUrl { get; set; }
/// <summary>
/// api post方式的入参参数 Json.
/// </summary>
public string PostParams { get; set; }
/// <summary>
/// api Get方式的入参参数
/// </summary>
public List<GetParamModel> GetParams { get; set; }
/// <summary>
/// Get参数的结构
/// </summary>
public class GetParamModel
{
/// <summary>
/// key.
/// </summary>
public string Key { get; set; }
/// <summary>
/// value值.
/// </summary>
public string Value { get; set; }
}
}
}
4.实际调用的示例
ApiInput apiInput = new ApiInput();
apiInput.ApiUrl = ApiUrlConsts.SapApi_WateOffSapOnTheWayVoucher; // 调用接口地址-冲销sap在途物资凭证
apiInput.PostParams = JsonConvert.SerializeObject(input);
var content = ApiHelper.PostApi(apiInput);
版权声明:本文为qq_27860623原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。