httpclient 调用WebAPI

本文介绍了一个具体的WebAPI接口设计案例,该接口用于获取指定租户和位置下的所有传感器信息。同时提供了客户端调用此接口的方法示例,包括构造请求JSON、设置HTTP头及发送POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建webapi项目,提供接口方法如下:

/// <summary>
/// 获取租户、位置下的所有传感器
/// </summary>
/// <returns></returns>
[AcceptVerbs("POST")]
[Route("api/Sensors/GetSensors")]
public JsonResponseBase<List<TenSensorDTO>> GetSensors()
{
Logger.Debug("SensorsController---------------GetSensors");
string jsonData = this.Request.Content.ReadAsStringAsync().Result;
Logger.Information(jsonData);
TenSensorSearchDTO search = null;
var response = new JsonResponseBase<List<TenSensorDTO>>();
try
{
search = JsonConvert.DeserializeObject<TenSensorSearchDTO>(jsonData);
response.Json.IsSuccess = true;
}
catch(Exception ex)
{
Logger.Fatal(ex);
response.Json.IsSuccess = false;
response.Json.OperationDesc = "参数错误";
}
if (response.Json.IsSuccess && search != null)
{
response = TenantManageService.GetSensorList(search);
}

return response;
}

2、客户端使用httpclient调用

string url = urlPre + "Sensors/GetSensors";
//租户ID必须传入,LocationID可以不传入,看调用段需求
var content = new { TenantID = Guid.Parse("5ebf5f81-ac69-418c-b170-9eb255201dd1") ,
LocationID = Guid.Parse("db5a58c0-1d12-4fe9-99bb-4bebe6bcb935") };
var requestJson = JsonConvert.SerializeObject(content);
HttpContent httpContent = new StringContent(requestJson);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var httpClient = new HttpClient();
var responseJson = httpClient.PostAsync(url, httpContent)
.Result.Content.ReadAsStringAsync().Result;

转载于:https://www.cnblogs.com/wangchaozhi/p/5104587.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值