0
iOS
のXamarin Forms
に作成しました。HttpClient
は、デバイスから自分のサーバーに画像を送信する機能です。中核機能はXamarinフォーム、AndroidおよびHttpClientの問題
var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fName
};
fileContent.Headers.ContentDisposition.Parameters
.Add(new NameValueHeaderValue("userId", UserId.ToString()));
content.Add(fileContent);
using (var client = new HttpClient()) {
client.DefaultRequestHeaders.Add("authenticationToken", SyncData.Token);
HttpResponseMessage response = await client.PostAsync(url, content);
if (response.IsSuccessStatusCode)
{
// more code
}
}
私はSystem.Net.Http
を使用しています。私はAndroidのプロジェクトに同じ機能を使用しようとしましたが、驚くことに機能しません。問題はヘッダーにあります:私が調べるならば、fileContent
私はすべてのキーを見ることができますが、サーバ上のwebapiにはFileName
が届きません。
いくつかログインした後、私は今WEBAPIがFileName
のparamを受けclient.DefaultRequestHeaders
client.DefaultRequestHeaders.Add("FileName", fName);
ようなより多くの追加この機能を変更しました。
私の質問は何ですか:私は間違っていましたか?
ありがとう@ deckerton_9000、私は 'client.DefaultRequestHeaders.Add(" FileName "、fName);で問題を解決しました。私の問題は、iOSとAndroidの間で 'httpclient'を共有することができません。 – Enrico
ナゲットパッケージ" Microsoft.Net.Http "の使用を検討しましたか? AndroidとiOSの両方で互換性があります。注意:ネームスペースの衝突やバインディングのリダイレクトを避けるために、このナゲットを追加する前に、System.Net.Httpへのプロジェクト参照を削除する必要があります。 –
ポータブルクラスライブラリを使用する場合は、AndroidとiOSの間でHttpClientコードを最も確実に共有できます。 –