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) {
HttpClient
httpClient = new DefaultHttpClient();
HttpContext
localContext = new BasicHttpContext();
HttpPost
httpPost = 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 the
data
entity.addPart(nameValuePairs.get(index).getName(), new
FileBody(new File (nameValuePairs.get(index).getValue())));
} else {
// Normal string data
entity.addPart(nameValuePairs.get(index).getName(), new
StringBody(nameValuePairs.get(index).getValue()));
}
}
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost,
localContext);
} catch
(IOException e) {
e.printStackTrace();
}
}
这个方法目测写得不错,先留着用
android HttpClient 附带的参数