在过去,我创建了一个在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
?提前谢谢。
答案 0 :(得分:1)
在HTTP请求中,PUT和POST是将数据传输到服务器的正确方法,独立于这些方法发送数据没有意义。当您使用System.Net中提供的客户端时,这仅仅是从您那里抽象出来的。
答案 1 :(得分:1)
在您的旧代码中,您使用了method
参数中传递的一些方法来使用UploadData
方法发送数据,它可能是POST
或PUT
。如果您未指定UploadData
的方法,则使用POST
。因此,您应该使用PostAsync
或PutAsync
根据您当前的代码以及传递给method
的{{1}}参数的值。
最简单的方法是使用这样的东西:
UploadData
PUT的代码是相同的,但using(var client = new HttpClient())
{
var response = await client.PostAsJsonAsync(requestUrl, data);
return await response.Content.ReadAsStringAsync();
}