参数发送参数在url上的post请求

昨天在对接曹操专车时看到他有个接口是post请求
发送了参数为json格式的post请求之后返给我xxx参数缺失
看了一下他沙箱环境的请求之后发现他是接收的是参数拼在url上的post请求(文档里你也没写啊喂
现成的工具类好像没有什么能发送这种类型的post请求
就自己封装了一个

HttpPost 就是发送post请求
HttpGet 就是发送get请求

  public static JSONObject httpPost(String param, Map<String, Object>parameters) {
        StringBuilder params = new StringBuilder(param);
        params.append("?");
        for (Iterator<?> iter = parameters.entrySet().iterator(); iter.hasNext(); ) {
            Map.Entry<?, ?> element = (Map.Entry<?, ?>) iter.next();
            params.append(element.getKey().toString());
            params.append("=");
            params.append(URLEncoder.encode(element.getValue().toString()));
            params.append("&");
        }
        System.out.println(params.toString());
        //get请求返回结果
        JSONObject jsonResult = null;
        try {
            HttpClient client = HttpClients.createDefault();
            //发送get请求
            HttpPost request = new HttpPost(params.toString() );    //和get请求唯一的区别
            HttpResponse response = client.execute(request);

            /**请求发送成功,并得到响应**/
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                /**读取服务器返回过来的json字符串数据**/
                String strResult = EntityUtils.toString(response.getEntity());
                /**把json字符串转换成json对象**/
                jsonResult = JSONObject.parseObject(strResult);
                URLDecoder.decode(params.toString() , "UTF-8");
            } else {
            }
        } catch (IOException e) {
        }

        return jsonResult;


		JSONObject.parseObject(httpClientUtil.doJsonPost(params,JSONObject.toJSONString(params),));
    }

你可能感兴趣的:(java)