RestSharp 官網(wǎng) https://restsharp.dev
https://github.com/restsharp/RestSharp
參考
https://blog.csdn.net/xiaopanpan92/article/details/115463636
//1.首先創(chuàng)建一個 RestClient對象
//serviceUrl是需要請求的地址
var client = new RestClient(serviceUrl);
//2.創(chuàng)建一個請求,這里可以指定請求的類型
var request = new RestRequest(Method.POST);
//3.給請求加各種參數(shù)
//添加頭部信息
request.AddHeader("Content-Type", "multipart/form-data");
//添加文件
//也可以通過字節(jié)流的方式添加文件 AddFileBytes(string name, byte[] bytes, string filename, string contentType = "application/x-gzip")
request.AddFile("filePath", pdfPath);
//添加參數(shù)
request.AddParameter("Timeout", options.Timeout.Value)
//官網(wǎng)中還有好多添加參數(shù)的方法
//可以查看該地址進(jìn)行https://restsharp.dev/api/RestSharp.html#class-restrequest
//4.執(zhí)行請求,并獲得返回值
var restResponse = client.Execute(request);
result = restResponse.Content;
//處理返回值序列化也進(jìn)行了封裝,可以直接調(diào)用方法
//例如 Execute<Call>(request),可以直接將返回值序列化為對象
//至此一個請求就發(fā)送接收成功了
//使用起來還是比較方便的
使用
private async Task RequestAsync<T>(Dictionary<string, string> parameter)
{
RestClient client = new(Constants.HOST_URL);
RestRequest request = new("api/v1/banner", Method.Get);
string signature = AuthHelper.getBase64Signature(parameter);
_ = request
.AddHeader("signature", signature)
.AddHeader("access-key", "game_box");
RestResponse<ApiResponse<T>> response = await client.ExecuteAsync<ApiResponse<T>>(request);
ApiResponse<T> result = response.Data;
Trace.WriteLine("restResponse" + result);
}
public class ApiResponse<T> : BaseResponse<T>
{
public int code { get; set; }
public string message { get; set; }
public T value { get; set; }
public override int getResponseCode()
{
return code;
}
public override T getResponseData()
{
return value;
}
public override string getResponseMsg()
{
return message;
}
public override bool IsSuccess()
{
return code == 0 ? true : false;
}
}