使用Android异步Http客户端库将文件从Android上载到.Net Web API

使用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

我正在尝试从Android客户端将图像上载到ASP.NET RESTful Web API。为了做到这一点,我使用了图书馆

我期待一个标题看起来像在这篇文章中提到的

我的问题是,我发出的请求不是多部分请求,因此我总是抛出不受支持的媒体类型异常

下面是我的.NET代码

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) ;