[转载]HttpClient通过HttpPost传递参数 – 我们轻松了,并不是生活越来越容易了,而是我们越来越强 – ITeye技术网站.
HttpClient新版本(新老版本没有做明确界定,Sorry!)
package http;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class HttpTests {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("******/abc");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("username", "vip"));
nvps.add(new BasicNameValuePair("password", "secret"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
httpclient.execute(httpPost);
httpclient.getConnectionManager().shutdown();
}
}
HttpClient 老版本:
package http;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class HttpTests {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
HttpClient httpclient = new HttpClient();
PostMethod httpPost =new PostMethod("******/abc");
NameValuePair[] param = { new NameValuePair("username", "vip")};
httpPost.setRequestBody(param);
httpclient.executeMethod(httpPost);
}
}
上传图片:
import java.io.File;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
public class HttpClientPostMethod {
public static void main(String[] args) throws ClientProtocolException, IOException {
post();
}
public static void post() throws ClientProtocolException, IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost("http://localhost:8080/action.jsp");
FileBody fileBody = new FileBody(new File("/home/sendpix0.jpg"));
StringBody stringBody = new StringBody("文件的描述");
MultipartEntity entity = new MultipartEntity();
entity.addPart("file", fileBody);
entity.addPart("desc", stringBody);
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
HttpEntity entitys = response.getEntity();
if (entity != null) {
System.out.println(entity.getContentLength());
System.out.println(EntityUtils.toString(entitys));
}
}
httpclient.getConnectionManager().shutdown();
}
}
Mikel