如何使用Microsoft.Net.Http上传数据?

时间:2016-04-14 09:18:01

标签: c#

在过去,我创建了一个在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或{{1}的方法请求允许我将数据从post发送到client?提前谢谢。

2 个答案:

答案 0 :(得分:1)

在HTTP请求中,PUT和POST是将数据传输到服务器的正确方法,独立于这些方法发送数据没有意义。当您使用System.Net中提供的客户端时,这仅仅是从您那里抽象出来的。

答案 1 :(得分:1)

在您的旧代码中,您使用了method参数中传递的一些方法来使用UploadData方法发送数据,它可能是POSTPUT。如果您未指定UploadData的方法,则使用POST。因此,您应该使用PostAsyncPutAsync根据您当前的代码以及传递给method的{​​{1}}参数的值。

最简单的方法是使用这样的东西:

UploadData

PUT的代码是相同的,但using(var client = new HttpClient()) { var response = await client.PostAsJsonAsync(requestUrl, data); return await response.Content.ReadAsStringAsync(); }