android - android 中的多部分请求问题 - 抛出 BAD REQUEST

标签 android multipart multipartentity

private void CreateaMultiPartRequest() {
   try{
       HttpClient client = new DefaultHttpClient();  
       HttpPost post = new HttpPost("http://172.16.22.232:8080/RESTfulExample/rest/multiPartFileUpload");  
       MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
       post.setHeader("Content-type", "multipart/form-data; boundary="+"~~~~~");
       String Usersettings = "{\"uId\":\"atcc02\", \"bomId\":\"IC014654_12345\", \"fileName\":\"file_12345.pdf\"}";     
       File cfile = new File(receivedUri.getPath());
       reqEntity.addPart("file", new FileBody(cfile,"application/octet")); 
       reqEntity.addPart("settings", new StringBody(Usersettings,"application/json",Charset.forName("UTF-8")));
       post.setEntity(reqEntity); 
       HttpResponse response = client.execute(post);  
       HttpEntity resEntity = response.getEntity();  
            if (resEntity != null)  
                {
                  resEntity.consumeContent();  
                }
                else{                       
                }
            }           
            catch(Exception e)
            {
            }
        }

每当我尝试执行此代码时,我都会从服务器收到“400:BAD REQUEST”。无法弄清楚这里的问题,有人可以帮我解决这个问题吗?

最佳答案

可能您为 FileBody 使用了错误的 MIME 类型。请改用 application/octet-stream。

为了获得正确的 MIME 类型,我使用以下代码:

MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);

看看我用来发出网络请求的小型图书馆:http://code.google.com/p/android-dman/source/browse/trunk/src/org/nkuznetsov/lib/dman/DownloadManager.java

关于android - android 中的多部分请求问题 - 抛出 BAD REQUEST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564352/

相关文章:

http - 如何通过一个 HTTP 请求下载多个文件?

asp.net - 如何使用 ASP.NET Core 创建多部分 HTTP 响应

android - 实体在 MultiPartEntityBuilder 中返回错误

grails - 使用HTTPBuilder和MultipartEntity发布文本和文件

android - 使用 App Engine 项目更改 Android 的 "Annotation Processor Factory"的位置

android - 团结 : (Using cardboard SDK) Can we download new images to set as skybox

android - 如何在 Android 中发送多部分二进制短信?

安卓健康/能量棒

android - 获取android应用所在的电话号码