【发布时间】:2017-06-07 10:01:08
【问题描述】:
我在Xamarin Forms 中为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 参数。
现在我的问题是:我做错了什么?
【问题讨论】:
标签: android xamarin.forms dotnet-httpclient