如何在MultipartEntity中传递字符串变量?

时间:2012-04-02 06:12:08

标签: android http-post httpclient image-uploading multipartentity

我在MultipartEntity传递了3张图片。这很好用,但我不知道如何将String值传递给MultipartEntity。以下是我的代码:

public void executeMultipartPost(Bitmap bm, int i) throws Exception {
    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bm.compress(CompressFormat.JPEG, 75, bos);
        byte[] data = bos.toByteArray();
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost("http://www.3dsoles.com/droidapp/index.php");

        ByteArrayBody bab = new ByteArrayBody(data, "image" + i + ".jpg");
        // File file= new File("/mnt/sdcard/forest.png");
        // FileBody bin = new FileBody(file);
        MultipartEntity reqEntity = new MultipartEntity(
        HttpMultipartMode.BROWSER_COMPATIBLE);
        reqEntity.addPart("file", bab);
        // reqEntity.addPart("userID", Constants.mUserImei);
        reqEntity.addPart("photoCaption", new StringBody("sfsdfsdf"));
        postRequest.setEntity(reqEntity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new InputStreamReader(
        response.getEntity().getContent(), "UTF-8"));
        String sResponse;
        StringBuilder s = new StringBuilder();
        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }
        System.out.println("Response: " + s);
    } catch (Exception e) {
        BugSenseHandler.log("Uploading File", e);
    }
}

1 个答案:

答案 0 :(得分:14)

请参阅此additional jar files 的链接,您应该添加..

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.tumblr.com/api/write");

try 
{
    MultipartEntity entity = new MultipartEntity();
    entity.addPart("type",new StringBody("yourstring"));
    httppost.setEntity(entity);
    HttpResponse response = httpclient.execute(httppost);
} 
catch (ClientProtocolException e) 
{ } 
catch (IOException e) 
{ }