xamarin HttpClient

HttpClient 是内置类,用于发送 HTTP 请求和接收来自通过 URI 确认的资源的 HTTP 响应。 HttpClient 使用基于任务的 API 提供性能,并提供对标头、状态代码和消息正文等内容的访问权限。

若要使用 HttpClient,请先在内存中创建一个实例。 下面介绍如何使用 C# 执行该操作:

HttpClient client = new HttpClient();

可以使用默认的构造函数,现在可在此 client 实例上执行 CRUD 操作。
使用 HttpClient 创建新资源
若要使用 HttpClient 创建新资源,请使用 PostAsync 方法。 下面是 C# 代码中的一个示例:

HttpClient client = new HttpClient();

StringContent content = new StringContent(JsonConvert.SerializeObject(data)
,Encoding.UTF8, "application/json");

HttpResponseMessage response = await client.PostAsync("https://...", content);

此代码中有一些正在进行的操作,让我们来逐步完成它。

首先,创建名为 client 的 HTTPClient 实例,用于发出 POST 请求。

然后创建名为 content 的 StringContent 实例。 它表示以字符串形式发送到 Web 服务的数据。 它还添加了编码类型和数据格式等数据。 在本示例中,我们以 JSON 格式发送数据。 请注意,data 变量只是某些 C# 对象的一个实例。 我们使用 JsonConvert 类将其转换为 JSON。

最后,对 HTTPClient 调用 PostAsync 方法。 第一个参数是 URI。 第二个参数是消息正文,其中包含 JSON 格式的数据。 PostAsync 方法会返回 HttpResponseMessage 对象,其中包含状态代码和最新创建的对象等内容。
使用 HTTPClient 读取资源
若要使用 HTTPClient 读取资源,请使用 GetStringAsync 方法。 下面是 C# 代码中的一个示例:

HttpClient client = new HttpClient();

string text = await client.GetStringAsync("https://...");

GetStringAsync 方法接受 URI 并返回响应作为 string。 string 响应是所请求的资源。 响应数据的格式将为所请求服务的默认格式,例如 JSON 或 XML。 可以通过添加 MediaTypeWithQualityHeaderValue 标头来告诉 Web 服务你更喜欢接收特定数据格式。 例如,如果请求发回 JSON 格式,则它会如下所示:

HttpClient client = new HttpClient();

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

在本示例中,我们获得字符串形式的结果。 如果想要以 HttpResponseMessage 对象的形式获取整个响应,请改用 GetAsync。 该对象包括响应的标头、正文和状态代码。
使用 HTTPClient 更新资源
若要使用 HTTPClient 更新资源,请使用 PutAsync 方法。 此代码与创建新资源时所用的代码相同,使用 PutAsync 方法的情况除外。 以下是 C# 中的代码:

HttpClient client = new HttpClient();

StringContent content = new StringContent(JsonConvert.SerializeObject(data)
						,Encoding.UTF8, "application/json");

HttpResponseMessage response = await client.PutAsync("https://...", content);

使用 HTTPClient 删除资源
若要使用 HTTPClient 删除资源,请使用 DeleteAsync 方法。 下面是 C# 代码中的一个示例:

HttpClient client = new HttpClient();

HttpResponseMessage response = await client.DeleteAsync("https://...");

在本示例中,我们传递想要删除的资源的 URI。 响应包含标头、状态代码和已删除的对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值