package httpclient; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class HttpClientTest { /** * 如果为了增加效率可以使用 async-http-client.jar * * @HttpClient post形式调接口 */ public static void main(String[] args) { HttpClient client = new HttpClient(); client.getParams().setCredentialCharset("UTF-8"); client.getHostConfiguration().setHost("127.0.0.1", 9000, "http"); List<?> hts = new ArrayList<String>(); client.getHostConfiguration().getParams().setParameter("http.default-headers", hts); PostMethod method = new PostMethod("/userManager/rollUser"); method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8"); // 传参数 NameValuePair msgpara = new NameValuePair(); msgpara.setName("selCity"); msgpara.setValue("aaaaaaaaaaaaa"); method.addParameter(msgpara); try { // 状态,一般200为OK状态,其他情况会抛出如404,500,403等错误 int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { System.out.println("远程访问失败。"); } // d = method.getResponseBodyAsString(); InputStream resStream = method.getResponseBodyAsStream(); BufferedReader br = new BufferedReader(new InputStreamReader(resStream)); StringBuffer resBuffer = new StringBuffer(); String resTemp = ""; while ((resTemp = br.readLine()) != null) { resBuffer.append(resTemp); } String response = resBuffer.toString(); // 打印返回的内容 System.out.println(response); } catch (Exception e) { e.printStackTrace(); } finally { method.releaseConnection(); } } }