使用Android异步Http客户端库将文件从Android上载到.Net Web API
我正在尝试从Android客户端将图像上载到ASP.NET RESTful Web API。为了做到这一点,我使用了图书馆 我期待一个标题看起来像在这篇文章中提到的 我的问题是,我发出的请求不是多部分请求,因此我总是抛出不受支持的媒体类型异常 下面是我的.NET代码使用Android异步Http客户端库将文件从Android上载到.Net Web API,android,asp.net-mvc,file-upload,asp.net-web-api,android-async-http,Android,Asp.net Mvc,File Upload,Asp.net Web Api,Android Async Http,我正在尝试从Android客户端将图像上载到ASP.NET RESTful Web API。为了做到这一点,我使用了图书馆 我期待一个标题看起来像在这篇文章中提到的 我的问题是,我发出的请求不是多部分请求,因此我总是抛出不受支持的媒体类型异常 下面是我的.NET代码 public Task<Guid> Upload([) { Guid userGuid; // Check if the request contains multipart/form-data
public Task<Guid> Upload([)
{
Guid userGuid;
// Check if the request contains multipart/form-data
// or if the extension is valid
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
return null;
}
var provider = new CustomMultipartFormDataStreamProvider(UPLOAD_PATH);
// Read the form data and return an async task.
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<Guid>(t =>
{
// mode code
foreach (MultipartFileData file in provider.FileData)
{
filename = file.Headers.ContentDisposition.FileName;
// ... more code
}
return guid;
});
return task;
}
我不确定我错过了什么。我已经被困在这两天了,我尝试了各种不同的选择。Top是我根据post找到的最基本的版本
我想知道我是否可以得到一些关于如何解决这个问题的指导和提示
谢谢 我知道这是一个老帖子,但我的处境和你一样……你是怎么解决的?这里也是——解决这个问题有什么运气吗?无论我尝试什么,Request.Content.IsMimeMultipartContent()始终为false。
public Task<Guid> Upload([)
{
Guid userGuid;
// Check if the request contains multipart/form-data
// or if the extension is valid
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
return null;
}
var provider = new CustomMultipartFormDataStreamProvider(UPLOAD_PATH);
// Read the form data and return an async task.
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<Guid>(t =>
{
// mode code
foreach (MultipartFileData file in provider.FileData)
{
filename = file.Headers.ContentDisposition.FileName;
// ... more code
}
return guid;
});
return task;
}
File file = new File([path to your file]);
MimeTypeMap map = MimeTypeMap.getSingleton();
String ext = FilenameUtils.getExtension(file.getName());
String mime_type = map.getMimeTypeFromExtension(ext);
MultipartEntity form = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, this);
form.addPart("file-data", new FileBody(file, mime_type, "UTF-8"));
AsyncHttpClient client = new AsyncHttpClient();
client.post(context, [your url], form, mime_type, responseHandler) ;