![](/img/trans.png)
[英]5 .NET HTTP libraries - where does Microsoft.Net.Http fit in?
[英]How to upload data with Microsoft.Net.Http?
过去,我制作了一个在endpoint
上缩减请求的类。 现在,我创建一个包含此方法的dll
,这是我要在此库上转换的代码:
using (var client = new HttpClient())
{
string requestJson = JsonConvert.SerializeObject(data);
client.DefaultRequestHeaders.Add("token", token);
byte[] responseArray = client. 'there is no upload data method
// the bottom code is of the old method
byte[] responseArray = client.UploadData(requestURI, method, Encoding.UTF8.GetBytes(requestJson));
return Encoding.ASCII.GetString(responseArray);
}
在非便携式库System.Net
我可以调用client.UploadData
,但是在这里我只能看到:postAsync和putAsync,有一种方法独立于put
或post
请求,使我可以将数据从client
发送到server
? 提前致谢。
在HTTP请求中,PUT和POST是将数据传输到服务器的正确方法,而独立于这些方法发送数据是没有意义的。 当您使用诸如System.Net中可用的客户端时,这仅仅是从您身上抽象出来的。
在您的旧代码中,您使用了一些传入method
参数的方法来通过UploadData
方法发送数据,它可能是POST
或PUT
。 如果未为UploadData
指定方法,则使用POST
。 所以,你应该用PostAsync
或PutAsync
,根据您当前的代码和值method
参数传递给UploadData
。
最简单的方法是使用如下所示的内容:
using(var client = new HttpClient())
{
var response = await client.PostAsJsonAsync(requestUrl, data);
return await response.Content.ReadAsStringAsync();
}
PUT的代码将相同,但使用PutAsJsonAsync
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.