所需jar
<dependency>
<groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>fluent-hc</artifactId> <version>4.2</version> </dependency>java调用方法package com.zc.finance.menu;
import java.io.Console;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpUriRequest;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.alibaba.fastjson.JSON;import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;import com.zc.common.BaseController;import com.zc.finance.resoruce.domain.Role; public class MenuController extends BaseController { /** * 导航栏 */ public String url12=""; @RequestMapping(value = "/role/addRole") public void getHttpClientUpdateRole(String url, Map<String, String> params, HttpServletResponse response,HttpServletRequest request, Role model) { String role = JSON.toJSONString(model); request.getParameter("roleName"); String url1 = url12 params.put("role", role); String str = post(url1, params); response.setContentType("text/html;charset=utf-8"); try { response.getWriter().write(str); response.getWriter().flush(); response.getWriter().close(); } catch (IOException e) { e.printStackTrace(); } //return str; } public String post(String url, Map<String, String> params) { DefaultHttpClient httpclient = new DefaultHttpClient(); String body = null; // log.info("create httppost:" + url); HttpPost post = postForm(url, params); body = invoke(httpclient, post); httpclient.getConnectionManager().shutdown(); return body; } public String get(String url) { DefaultHttpClient httpclient = new DefaultHttpClient(); String body = null; // log.info("create httppost:" + url); HttpGet get = new HttpGet(url); body = invoke(httpclient, get); httpclient.getConnectionManager().shutdown(); return body; } private String invoke(DefaultHttpClient httpclient, HttpUriRequest httpost) { HttpResponse response = sendRequest(httpclient, httpost); String body = paseResponse(response); return body; } private String paseResponse(HttpResponse response) { String body = null; // log.info("get response from http server.."); HttpEntity entity = response.getEntity(); // log.info("response status: " + response.getStatusLine()); String charset = EntityUtils.getContentCharSet(entity); // log.info(charset); try { body = EntityUtils.toString(entity); // log.info(body); } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } /** * 判断返回数据类型是否是json格式的, 是说明请求成功,不是说明用户未登陆或登陆超时 */ try { JSON.parse(body); } catch (Exception e) { body = "用户未登陆或登陆超时!"; e.printStackTrace(); } return body; } private HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) { // log.info("execute post..."); HttpResponse response = null; try { response = httpclient.execute(httpost); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response; } private HttpPost postForm(String url, Map<String, String> params) { HttpPost httpost = new HttpPost(url); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); Set<String> keySet = params.keySet(); for (String key : keySet) { nvps.add(new BasicNameValuePair(key, params.get(key))); } try { // log.info("set utf-8 form entity to httppost"); httpost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return httpost; } }