httpUtil使用

1.httputil工具类

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

/**
  * 
 * @project baidamei
 * @author cevencheng <cevencheng@gmail.com>
 * @create 2012-11-17 下午2:35:38
 */
public class HttpUtil {
   /**
    * Send a get request
    * @param url
    * @return response
    * @throws IOException 
    */
   static public String get(String url) throws IOException {
      return get(url, null);
   }

   /**
    * Send a get request
    * @param url         Url as string
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String get(String url,
         Map<String, String> headers) throws IOException {
      return fetch("GET", url, null, headers);
   }

   /**
    * Send a post request
    * @param url         Url as string
    * @param body        Request body as string
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String post(String url, String body,
         Map<String, String> headers) throws IOException {
      return fetch("POST", url, body, headers);
   }

   /**
    * Send a post request
    * @param url         Url as string
    * @param body        Request body as string
    * @return response   Response as string
    * @throws IOException 
    */
   static public String post(String url, String body) throws IOException {
      return post(url, body, null);
   }

   /**
    * Post a form with parameters
    * @param url         Url as string
    * @param params      map with parameters/values
    * @return response   Response as string
    * @throws IOException 
    */
   static public String postForm(String url, Map<String, String> params) 
         throws IOException {
      return postForm(url, params, null);
   }

   /**
    * Post a form with parameters
    * @param url         Url as string
    * @param params      Map with parameters/values
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String postForm(String url, Map<String, String> params,
         Map<String, String> headers) throws IOException {
      // set content type
      if (headers == null) {
         headers = new HashMap<String, String>();
      }
      headers.put("Content-Type", "application/x-www-form-urlencoded");

      // parse parameters
      String body = "";
      if (params != null) {
         boolean first = true;
         for (String param : params.keySet()) {
            if (first) {
               first = false;
            }
            else {
               body += "&";
            }
            String value = params.get(param);
            body += URLEncoder.encode(param, "UTF-8") + "=";
            body += URLEncoder.encode(value, "UTF-8");
         }
      }

      return post(url, body, headers);
   }

   /**
    * Send a put request
    * @param url         Url as string
    * @param body        Request body as string
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String put(String url, String body,
         Map<String, String> headers) throws IOException {
      return fetch("PUT", url, body, headers);
   }

   /**
    * Send a put request
    * @param url         Url as string
    * @return response   Response as string
    * @throws IOException 
    */
   static public String put(String url, String body) throws IOException {
      return put(url, body, null);
   }
   
   /**
    * Send a delete request
    * @param url         Url as string
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String delete(String url,
         Map<String, String> headers) throws IOException {
      return fetch("DELETE", url, null, headers);
   }
   
   /**
    * Send a delete request
    * @param url         Url as string
    * @return response   Response as string
    * @throws IOException 
    */
   static public String delete(String url) throws IOException {
      return delete(url, null);
   }
   
   /**
    * Append query parameters to given url
    * @param url         Url as string
    * @param params      Map with query parameters
    * @return url        Url with query parameters appended
    * @throws IOException 
    */
   static public String appendQueryParams(String url, 
         Map<String, String> params) throws IOException {
      String fullUrl = new String(url);
      
      if (params != null) {
         boolean first = (fullUrl.indexOf('?') == -1);
         for (String param : params.keySet()) {
            if (first) {
               fullUrl += '?';
               first = false;
            }
            else {
               fullUrl += '&';
            }
            String value = params.get(param);
            fullUrl += URLEncoder.encode(param, "GBK") + '=';
            fullUrl += URLEncoder.encode(value, "GBK");
         }
      }
      
      return fullUrl;
   }
   
   /**
    * Retrieve the query parameters from given url
    * @param url         Url containing query parameters
    * @return params     Map with query parameters
    * @throws IOException 
    */
   static public Map<String, String> getQueryParams(String url) 
         throws IOException {
      Map<String, String> params = new HashMap<String, String>();
   
      int start = url.indexOf('?');
      while (start != -1) {
         // read parameter name
         int equals = url.indexOf('=', start);
         String param = "";
         if (equals != -1) {
            param = url.substring(start + 1, equals);
         }
         else {
            param = url.substring(start + 1);
         }
         
         // read parameter value
         String value = "";
         if (equals != -1) {
            start = url.indexOf('&', equals);
            if (start != -1) {
               value = url.substring(equals + 1, start);
            }
            else {
               value = url.substring(equals + 1);
            }
         }
         
         params.put(URLDecoder.decode(param, "GBK"), 
            URLDecoder.decode(value, "GBK"));
      }
      
      return params;
   }

   /**
    * Returns the url without query parameters
    * @param url         Url containing query parameters
    * @return url        Url without query parameters
    * @throws IOException 
    */
   static public String removeQueryParams(String url) 
         throws IOException {
      int q = url.indexOf('?');
      if (q != -1) {
         return url.substring(0, q);
      }
      else {
         return url;
      }
   }
   
   /**
    * Send a request
    * @param method      HTTP method, for example "GET" or "POST"
    * @param url         Url as string
    * @param body        Request body as string
    * @param headers     Optional map with headers
    * @return response   Response as string
    * @throws IOException 
    */
   static public String fetch(String method, String url, String body,
         Map<String, String> headers) throws IOException {
      // connection
      URL u = new URL(url);
      HttpURLConnection conn = (HttpURLConnection)u.openConnection();
      conn.setConnectTimeout(90000);
      conn.setReadTimeout(90000);

      // method
      if (method != null) {
         conn.setRequestMethod(method);
      }

      // headers
      if (headers != null) {
         for(String key : headers.keySet()) {
            conn.addRequestProperty(key, headers.get(key));
         }
      }

      // body
      if (body != null) {
         conn.setDoOutput(true);
         OutputStream os = conn.getOutputStream();
         os.write(body.getBytes());
         os.flush();
         os.close();
      }
      
      // response
      InputStream is = conn.getInputStream();
      String response = streamToString(is);
      is.close();
      
      // handle redirects
      if (conn.getResponseCode() == 301) {
         String location = conn.getHeaderField("Location");
         return fetch(method, location, body, headers);
      }
      
      return response;
   }
   
   /**
    * Read an input stream into a string
    * @param in
    * @return
    * @throws IOException
    */
   static public String streamToString(InputStream in) throws IOException {
      StringBuffer out = new StringBuffer();
      byte[] b = new byte[4096];
      for (int n; (n = in.read(b)) != -1;) {
         out.append(new String(b, 0, n));
      }
      return out.toString();
   }

2.被调用方

@ResponseBody
@RequestMapping("/queryProductByBarCode")
public JData queryProductByBarCode(HttpServletRequest request) throws Exception{

    if(checkParam(request)){
        String code = request.getParameter("code");
        //解析保存
        CloudProductDto cloudProductDto = dubboCloudProductRpcService.queryProductByBarCode(code);
        return new JData(ReturnCode.SUCCESS,cloudProductDto);
    }else {
        return new JData(ReturnCode.SUCCESS,"标识SIGN错误");
    }

}
/**
 * 判断参数Sign是否吻合
 * @param request
 * @return
 * @throws Exception
 */
private boolean checkParam(HttpServletRequest request)  throws Exception{
    try {

        Map<String,Object> map = new HashMap<String,Object>();
        Enumeration paramNames = request.getParameterNames();
        while (paramNames.hasMoreElements()) {
            String paramName = (String) paramNames.nextElement();

            String[] paramValues = request.getParameterValues(paramName);
            if (paramValues.length == 1) {
                String paramValue = paramValues[0];
                if (paramValue.length() != 0) {
                    map.put(paramName, paramValue);
                }
            }
        }
        if(map.containsKey("sign")){
           //如果标识相同
            Map map1 = new HashMap();
            map1.put("data", request.getParameter("data"));
            String token = "show-owen";
            String jsons = MD5Util.md5(token);
            if(map.get("sign").toString().contains(jsons)){
                return true;
            }
            return false;
        }else{
            return false;
        }
    } catch (Exception e) {
        throw e;
    }

}

 

3.调用方写法

Map map = new HashMap();

String token = "show-owen";
String jsons = MD5Util.md5(token);

map.put("sign", jsons);

map.put("code", code);

HttpUtil httpUtil = new HttpUtil();
String result = httpUtil.postForm(cloudProduct-queryProductByBarCodeUrl=http://127.0.0.1:8080/cloudProductRpcApi/queryProductByBarCode", map);
 
result返回参数就是请求的结果
 
此就是简单用法

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值