android - 如何使用http客户端在Web Api中上传图像?

标签 android web-services multipartentity

我想将文件从 Android 设备发送到 Web api,参数包括名称、 block 、文件数据。我有这段代码:它不会返回任何错误,我不知道我做错了什么。请帮忙,我花了很多时间在这上面,但它仍然不起作用。

FileBody localFileBody = new FileBody(new File("/storage/sdcard0/Pictures/Images/angel_productshot.jpg"),
                "image/jpg");

        MultipartEntity localMultipartEntity = new MultipartEntity(
                HttpMultipartMode.BROWSER_COMPATIBLE);

        HttpParams httpParameters = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParameters, 15000);
        HttpConnectionParams.setSoTimeout(httpParameters, 15000);
        HttpPost httpPost = new HttpPost(
                "http://phdsafar4.myserver.com.ph:1217/api/fileupload");
        HttpClient httpclient = new DefaultHttpClient(httpParameters);
        httpPost.addHeader("Authorization","Basic " + Base64.encodeToString(
                        (username + ":" + password).getBytes(), Base64.NO_WRAP));

        httpPost.setHeader("Content-Type", "multipart/form-data");
        httpPost.setHeader("Accept", "application/image");
        localMultipartEntity.addPart("name", new StringBody(filename));
        localMultipartEntity.addPart("chunk", new StringBody("1"));
        localMultipartEntity.addPart("file data", localFileBody);
        httpPost.setEntity(localMultipartEntity);
        HttpResponse localHttpResponse = httpclient.execute(httpPost);
        Log.i("response upload", localHttpResponse.toString());
        Log.i("Multipart Entity", localMultipartEntity.toString());

最佳答案

this work for me try it...
 to use MultipartEntity must be add this two jar file in your project lib
 1. httpmime-4.0.1.jar
 2. apache-mime4j-0-.6.jar

MultipartEntity multipartEntity = new MultipartEntity();
File image1 = new File(imagePath);
multipartEntity.addPart("Image1",image1);
File image2 = new File(imagePath2);
multipartEntity.addPart("Image2",image2);
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(Url);
post.setEntity(multipartEntity);
HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();
response_str = EntityUtils.toString(resEntity);

关于android - 如何使用http客户端在Web Api中上传图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18072596/

相关文章:

Android:使用多方时未发送二进制照片

java - 文件太大时上传文件错误

java - 使用 Object.wait 代替 Thread.sleep 进行时间同步

android - 在 MapFragment 中膨胀类 fragment 时出错

java - MP3 下载器致命异常

android - 即使授予了权限,访问 'storage/0/emulated/download' 路径时也被拒绝权限

.net - 提高ajax请求的性能

mysql - 在 ruby 中获取时间间隔

web-services - 从网络套件触发外部 API

php - 如何在android中使用多部分实体将JSONArray字符串发送到php服务器