json格式请求http

来源:互联网 发布:高性能网络编程 陶辉 编辑:程序博客网 时间:2024/04/30 12:41

例子:JsonObject response = postJsonData(url, gson.toJson(applyInfo));//applyInfo 一个java对象

        

 /**     * 发送 post 请求     *      * @param url 地址     * @return {@link JsonObject}     */    public static JsonObject postJsonData(String url, String jsonStrData) {        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();        HttpPost post = new HttpPost(url);        JsonObject jsonObject = null;        try {            CloseableHttpClient closeableHttpClient = httpClientBuilder.build();            HttpEntity entity = new StringEntity(jsonStrData, "UTF-8");            post.setEntity(entity);            post.setHeader("Content-type", "application/json");            HttpResponse resp = closeableHttpClient.execute(post);            jsonObject = convertResponseBytes2JsonObj(resp);        } catch (IOException e) {            e.printStackTrace();        }        return jsonObject;    }    /**     * 发送 get 请求     *      * @param url 地址     * @return {@link JsonObject}     */    public static JsonObject getJsonResponse(String url) {        JsonObject jsonObject = new JsonObject();        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();        HttpGet get = new HttpGet(url);        CloseableHttpClient closeableHttpClient = null;        try {            closeableHttpClient = httpClientBuilder.build();            HttpResponse resp = closeableHttpClient.execute(get);            jsonObject = convertResponseBytes2JsonObj(resp);        } catch (IOException e) {            e.printStackTrace();            if (null != closeableHttpClient) {                try {                    closeableHttpClient.close();                } catch (IOException e1) {                    e1.printStackTrace();                }            }        }        return jsonObject;    }    /**     * Header 为 application/json POST 请求数据     *      * @param resp     * @return {@link JsonObject}     */    private static JsonObject convertResponseBytes2JsonObj(HttpResponse resp) {        JsonObject jsonObject = null;        try {            InputStream respIs = resp.getEntity().getContent();            byte[] respBytes = IOUtils.toByteArray(respIs);            String result = new String(respBytes, Charset.forName("UTF-8"));            if (null == result || result.length() == 0) {                LOG.error("请求无响应");            } else {                if (result.startsWith("{") && result.endsWith("}")) {                    jsonObject = (JsonObject) jsonParser.parse(result);                } else {                    LOG.error("请求不能转成JSON对象");                }            }        } catch (Exception e) {            e.printStackTrace();        }        return jsonObject;    }



附:

 public static 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 static 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 static String invoke(DefaultHttpClient httpclient, HttpUriRequest httpost) {        HttpResponse response = sendRequest(httpclient, httpost);        String body = paseResponse(response);        return body;    }    @SuppressWarnings("unused")    private static String paseResponse(HttpResponse response) {        HttpEntity entity = response.getEntity();        log.info("response status: " + response.getStatusLine());        String charset = EntityUtils.getContentCharSet(entity);        String body = null;        try {            body = EntityUtils.toString(entity);            log.info(body);        } catch (ParseException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return body;    }    private static HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) {        HttpResponse response = null;        try {            response = httpclient.execute(httpost);        } catch (ClientProtocolException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        return response;    }    private static 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 {            httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return httpost;    }


get请求

String access_token = client.get(url);


post请求

String response = client.post(url, param);//Map<String, String> param




0 0