對於POST請求的接口,我們如何調用它獲取到數據,這其中自然少不了底層代碼
底層公共類的書寫
public class ThirdOpenAPIService
{
public static ThirdOpenAPIHttpAsyncClient Client = new ThirdOpenAPIHttpAsyncClient(); //HTTP異步客戶端
public static async Task<T> PostHttp<T>(string requestUri, object data)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("userUID", UserUID.ToString());
client.DefaultRequestHeaders.Add("token", Token);
string str = JsonHelper.Instance.Serialize(data);
var content = new StringContent(str)
{
Headers = { ContentType = new MediaTypeHeaderValue("Application/json") }
};
HttpResponseMessage var = await client.PostAsync(requestUri, content);
if (var.IsSuccessStatusCode)
{
return await var.Content.ReadAsAsync<T>();
}
return default(T);
}
}
public static Guid UserUID { get; set; }
public static string Token { get; set; }
}
那么在服務邏輯層我們應該怎么寫呢,只需要按照一般的寫法即可
ThirdOpenAPIService.UserUID = 記錄的Cookie用戶唯一ID
var response = await ThirdOpenAPIService.PostHttp<ThirdOpenAPIResponse<T>>(ThirdOpenAPIService.RequestUri(ApiUrls.User.login), new { userName = username, password = pwdCiphertext });//以登錄為例
