PostMan请求1如图:
c# HttpClient请求(带有超时功能) 代码:
//方法
public async static Task<string> PostResponse(string url, string postData, string param)
{
HttpClient httpClient = new HttpClient();
var request = new MultipartFormDataContent();
request.Add(new StringContent(postData), param);
var task = httpClient.PostAsync(url, request);
if (task == await Task.WhenAny(task, Task.Delay(1000)))
{
if (task.Result.IsSuccessStatusCode)
{
var responseContent = await task.Result.Content.ReadAsStringAsync();
return responseContent.ToString();
}else
{
return null;
}
}else
{
return "";//"超时";
}
}
//调用方法 注意HttpClientUtil为类,PostResponse为类中的方法
var tasks = await HttpClientUtil.PostResponse("http://10.10.14.5:8082/check/Add", "{"参数1":"数据1","参数2”:"数据2"}", "param");
PostMan请求2如图:
c# HttpClient请求 (带有超时功能)代码
//方法
public async static Task<string> PostUpdataResponse(string url, string postData)
{
HttpClient httpClient = new HttpClient();
HttpContent httpContent = new StringContent(postData);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var task = httpClient.PostAsync(url, httpContent);
if (task == await Task.WhenAny(task, Task.Delay(1000)))
{
if (task.Result.IsSuccessStatusCode)
{
var responseContent = await task.Result.Content.ReadAsStringAsync();
return responseContent.ToString();
}else
{
return null;
}
}else
{
return "";//"超时";
}
}
//调用方法 注意HttpClientUtil为类,PostUpdataResponse为类中的方法
var tasks = await HttpClientUtil.PostUpdataResponse("http://10.10.14.5:8082/check/Add", "{
"参数1":"数据1",
"参数2":"数据2"
}");
PostMan请求3如图:
c# HttpClient请求(带有超时功能)代码
//方法
//注意:此处调用的是SendAsync因为delete是不允许这样传输参数的
public async static Task<string> DeleteResponse(string url, string postData, string param)
{
HttpClient httpClient = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri(url),
Content = new FormUrlEncodedContent(new Dictionary<string, string>
{
{ param, postData },
})
};
var task = httpClient.SendAsync(request);
if (task == await Task.WhenAny(task, Task.Delay(1000)))
{
if (task.Result.IsSuccessStatusCode)
{
var responseContent = await task.Result.Content.ReadAsStringAsync();
return responseContent.ToString();
}
else
{
return null;
}
}else
{
return "";//"超时";
}
}
//调用方法 注意HttpClientUtil为类,DeleteResponse为类中的方法
var tasks = await HttpClientUtil.DeleteResponse("http://10.10.14.5:8082/check/deleteBatch", "1735175865043521536", "ids");
PostMan请求4 带图片上传如图:
c# HttpClient请求(带有超时功能)代码
//方法
public async static Task<string> PostFile(string url, string postData, string path,string file, string fileparam,string param)
{
HttpClient httpClient = new HttpClient();
var request = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(path));
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
request.Add(fileContent, file, fileparam);
request.Add(new StringContent(postData), param);
var task = httpClient.PostAsync(url, request);
if (task == await Task.WhenAny(task, Task.Delay(1000)))
{
}else
{
return "";//超时
}
}
//方法调用 注意HttpClientUtil为类
var tasks = await HttpClientUtil.PostFile("http://10.10.14.5:8082/check/qmBaseCar/addCarPhoto", "[{“参数1”:"数据1","参数2":"数据2"}]", @"D:/image/car/LeftView.png", "file", "LeftView", "param");