我正在尝试使用 HttpClient / HttpContent 通过网络上传数据但是我似乎找不到以这种方式发送文件的正确方法。
这是我当前的代码:
private async Task<APIResponse> MakePostRequest(string RequestUrl, string Content)
{
HttpClient httpClient = new HttpClient();
HttpContent httpContent = new StringContent(Content);
APIResponse serverReply = new APIResponse();
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
try {
Console.WriteLine("Sending Request: " + RequestUrl + Content);
HttpResponseMessage response = await httpClient.PostAsync(RequestUrl, httpContent).ConfigureAwait(false);
}
catch (HttpRequestException hre)
{
Console.WriteLine("hre.Message");
}
return (serverReply);
}
内容是这种形式的字符串:paramname=value¶m2name=value¶m3name=value.. 重点是我必须通过这个请求实际发送一个文件(照片)。
除了文件本身之外,每个参数似乎都可以正常工作(我必须在发布请求中发送两个身份验证密钥,并且它们被识别)
我以这种方式将图片作为字符串检索,这可能是它失败的主要原因之一?:/
byte[] PictureData = File.ReadAllBytes(good_path);
string encoded = Convert.ToBase64String(PictureData);
我做错什么了吗?是否有另一种更好的方法来创建正确的 POST 请求(它必须是异步的并支持文件上传)
谢谢。