Java实现PHP中的http_build_query()
背景:
PHP实现的系统要跟Java系统通讯,通讯中要求验签,验签中需要使用PHP 的 http_build_query
一开始找下Java轮子:
/** * Java实现PHP中的http_build_query()效果 * @param array * key=value形式的二位数组 * @return */ public String http_build_query(Maparray){ String reString = null; //遍历数组形成akey=avalue&bkey=bvalue&ckey=cvalue形式的的字符串 Iterator it = array.entrySet().iterator(); while (it.hasNext()){ Map.Entry entry =(Map.Entry) it.next(); String key = entry.getKey(); String value = entry.getValue(); reString += key+"="+value+"&"; } reString = reString.substring(0, reString.length()-1); //将得到的字符串进行处理得到目标格式的字符串 try { reString = java.net.URLEncoder.encode(reString,"utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } reString = reString.replace("%3D", "=").replace("%26", "&"); return reString; }
这个简单的处理只能应用在GET请求和POST form表单,对稍微正常复杂点的POST json无能为力,而Java 的Springboot 的封装又使Json的封装很普遍,表现在接口上就是Post Json