首页 > 代码库 > android HttpClient 附带的参数

android HttpClient 附带的参数

Sending images can be done using the HttpComponents libraries. Download the latest HttpClient (currently4.0.1) binary with dependencies package and copy apache-mime4j-0.6.jar and httpmime-4.0.1.jar to your project and add them to your Java build path.

You will need to add the following imports to your class.

import org.apache.http.entity.mime.HttpMultipartMode;import org.apache.http.entity.mime.MultipartEntity;import org.apache.http.entity.mime.content.FileBody;import org.apache.http.entity.mime.content.StringBody;

Now you can create a MultipartEntity to attach an image to your POST request. The following code shows an example of how to do this:

 

 

public void post(String url, List nameValuePairs) {
    HttpClienthttpClient = new DefaultHttpClient();
    HttpContextlocalContext = new BasicHttpContext();
    HttpPosthttpPost = new HttpPost(url);

    try{
       MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

       for(int index=0; index < nameValuePairs.size(); index++) {
           if(nameValuePairs.get(index).getName().equalsIgnoreCase("image")){
               // If the key equals to "image", we use FileBody to transfer thedata
               entity.addPart(nameValuePairs.get(index).getName(), newFileBody(new File (nameValuePairs.get(index).getValue())));
           } else {
               // Normal string data
               entity.addPart(nameValuePairs.get(index).getName(), newStringBody(nameValuePairs.get(index).getValue()));
           }
       }

       httpPost.setEntity(entity);

       HttpResponse response = httpClient.execute(httpPost,localContext);
    } catch(IOException e) {
       e.printStackTrace();
    }
}

这个方法目测写得不错,先留着用