如何使用http客户端在WebApi中上传图像



我想把我的文件从android设备发送到webapi,参数是名称、区块、文件数据。我有这样的代码:它不会在我身上返回任何错误,我不知道我做错了什么。请帮帮我,我花了很多时间,但它仍然不起作用。

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

通过以下代码

public static String uploadImage(Bitmap bitmap, String imageName, String imageUrl) {
    // String image_description = edtImageDescription.getText().toString();
    StringBuilder s = null;// = new StringBuilder();
    String sResponse;
    try {
        // ---------------------------------------------------------------------------------
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.JPEG, 75, bos);
        byte[] data = bos.toByteArray();
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost(imageUrl);
        ByteArrayBody imageByte = new ByteArrayBody(data, imageName);
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        // sending a String param;

        entity.addPart("image_description","Sample_Image")
        entity.addPart("image_name", imageByte);
        postRequest.setEntity(entity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
        s = new StringBuilder();
        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }
        Logger.logger("Utilities", "Response: " + s);
    } catch (Exception e) {
        Logger.logger("Utilities", "Some error came up");
    }
    if (s != null) {
        return s.toString();
    } else {
        return null;
    }
}

相关内容

  • 没有找到相关文章

最新更新