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.. ポイントは、このリクエストで実際にファイル (写真) を送信する必要があることです。
ファイル自体ではなく、各パラメーターに対して正常に機能しているようです(投稿リクエストで2つの認証キーを送信する必要があり、それらは認識されます)
この方法で画像を文字列として取得しますが、これが失敗する主な理由の 1 つである可能性があります。:/
byte[] PictureData = File.ReadAllBytes(good_path);
string encoded = Convert.ToBase64String(PictureData);
私は何か間違っていますか?適切な POST リクエストを作成する別のより良い方法はありますか (非同期で、ファイルのアップロードをサポートする必要があります)。
ありがとう。