簡體   English   中英

Xamarin Forms,Android和HttpClient問題

[英]Xamarin Forms, Android and HttpClient issue

我在Xamarin Forms for iOS創建了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未被接收。

經過一些日志后,我更改了此功能,添加了更多client.DefaultRequestHeaders類的

client.DefaultRequestHeaders.Add("FileName", fName);

現在,webapi接收FileName參數。

現在我的問題是:我錯了什么?

我個人使用MultipartFormDataContent上的Add方法來接受文件名。

var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(fileBytes);

...

// Use the overload Add method which accepts a file name
content.Add(fileContent, "FileName", fName);

...

我不確定這是否可以解決您的問題,但是對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM