我假设您知道要上传的图像的路径和文件名.使用image
作为键名将此字符串添加到NameValuePair
.
发送图像可以使用HttpComponents libraries.下载最新的HttpClient(目前是4.0.1)二进制依赖项包,将apache-mime4j-0.6.jar
和httpmime-4.0.1.jar
复制到项目中,并将它们添加到Java构建路径中.
您需要向类中添加以下导入.
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;
现在,您可以创建一个MultipartEntity
,将图像附加到POST请求中.以下代码显示了如何执行此操作的示例:
public void post(String url, List<NameValuePair> 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();
}
}
我希望这能帮助您朝着正确的方向前进.