訪問接口的方式無非GET,POST,PUT,DELETE等幾種,下面就簡單針對GET和POST記錄一下在.net core中的實現方式,廢話不多說,直接上代碼:
GET方式訪問
/// <summary>
/// 調用API並返回結果字符串(http方式)
/// </summary>
/// <param name="url">訪問接口全路徑,包含參數</param>
/// <returns>返回JSON字符串</returns>
public static async Task<string> GetRequest(string url)
{
try
{
using (var httpClientHandler = new HttpClientHandler())
{
//需要設置SSL訪問方式才需要寫下面一行代碼,如無要求,可以不寫
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };
//HTTPClient
using (var client = new HttpClient(httpClientHandler))
{
//client.BaseAddress = new Uri(url);
//設置請求體中的內容,並以GET的方式請求
var response = await client.GetAsync(url);
//獲取請求到數據,並轉化為字符串
var result = response.Content.ReadAsStringAsync().Result;
return result;
}
}
}
catch (Exception e)
{
throw e;
}
}
POST方式如下
/// <summary>
/// 調用API並返回結果字符串(http方式)
/// </summary>
/// <param name="strAddr">服務器地址</param>
/// <param name="param">參數字符串</param>
/// <param name="token">Token</param>
/// <returns>返回JSON字符串</returns>
public static async Task<string> PostRequestAsync(string url, object param, string token = "")
{
try
{
using (var httpClientHandler = new HttpClientHandler())
{
//需要設置SSL訪問方式才需要寫下面一行代碼,如無要求,可以不寫
httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };
//HTTPClient
using (var client = new HttpClient(httpClientHandler))
{
string jsonContent = JsonConvert.SerializeObject(param);
var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Method", "Post");
//client.BaseAddress = new Uri(url);
//設置請求體中的內容,並以post的方式請求
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
//獲取請求到數據,並轉化為字符串
var result = response.Content.ReadAsStringAsync().Result;
return result;
}
}
}
catch (Exception e)
{
throw e;
}
}
