/// <summary>
/// GET
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static string HttpGet(string url)
{
//ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Accept = "text/html, application/xhtml+xml, */*";
request.ContentType = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
else
{
return null;
}
}
/// <summary>
/// Post请求
/// </summary>
/// <param name="url">地址</param>
/// <param name="postData">post参数</param>
/// <param name="headers">头部参数</param>
/// <returns></returns>
public static string HttpPost(string url, string postData, Dictionary<string, string> headers = null)
{
if (url.StartsWith("https"))
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
if (postData == null) { postData = ""; }
HttpContent httpContent = new StringContent(postData);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
httpContent.Headers.ContentType.CharSet = "utf-8";
if (headers != null && headers.Count > 0)
{
foreach (var item in headers)
{
httpContent.Headers.Add(item.Key, item.Value);
}
}
HttpClient httpClient = new HttpClient();
//httpClient..setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
HttpResponseMessage response = httpClient.PostAsync(url, httpContent).Result;
var statusCode = response.StatusCode.ToString();
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
return result;
}
return null;
}
public static string HttpPostByFormData(string url, string formData)
{
var webClient = new WebClient();
return webClient.Post(url, formData);
}
/// <summary>
/// Http请求,上传附件并带参数
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="postData">参数,key:参数名,value:参数值</param>
/// <param name="postFiles">附件,key:附件参数名,value:附件物理地址(不可为远程地址)</param>
/// <returns></returns>
public static string HttpUpload(string url, Dictionary<string, string> postData, Dictionary<string, string> postFiles)
{
using (var client = new HttpClient())
{
using (var multipartFormDataContent = new MultipartFormDataContent())
{
if (postData != null && postData.Count > 0)
{
foreach (var keyValuePair in postData)
{
multipartFormDataContent.Add(new StringContent(keyValuePair.Value),
String.Format("\"{0}\"", keyValuePair.Key));
}
}
if (postFiles != null && postFiles.Count > 0)
{
foreach (var item in postFiles)
{
multipartFormDataContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(item.Value)),
"\"" + item.Key + "\"",
Uri.EscapeDataString(item.Value.Split(new string[] { "\\", "/" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault()));
}
}
var html = client.PostAsync(url, multipartFormDataContent).Result.Content.ReadAsStringAsync().Result;
return html;
}
}
}
C# 请求接口RestfulAPI,Get请求,Post请求,上传附件及带参数
最新推荐文章于 2024-05-18 16:54:01 发布