httpUtil使用

httpUtil使用1 httputil 工具类 importjava io IOException importjava io InputStream importjava io OutputStream importjava net HttpURLConne importjava net URL importjava net URLDecoder importjava net

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  
   
   @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> 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> 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> 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> params 
    ,  
     Map 
    
      , String> headers) 
     throws IOException { 
     // set content type  
       
     if (headers == 
     null) { headers = 
     new HashMap 
     
       , 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> 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> 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> 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> 
          getQueryParams(String url) 
          throws IOException { Map 
          
            , String> params = 
           new HashMap 
           
             , 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> 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 
 
   ,Object> map = 
  new HashMap 
  
    ,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返回参数就是请求的结果
 
此就是简单用法

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212437.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:03
下一篇 2026年3月18日 下午8:03


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号