zoukankan      html  css  js  c++  java
  • httpclient之post 方法(参数为json类型)

    package httpclient;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;


    import org.apache.http.*;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;

    import org.json.JSONObject;
    /**
    * Created by jiangcui on 2018/5/21.
    */
    public class HttpClientPostForJson {
    public static void main(String[] args) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.append("username", "jiangcui");
    jsonObject.append("password", "pdmi1234");

    String url = "https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F";
    String result = HttpClientPostForJson.doPostForJson(url,jsonObject);
    System.out.println(result);
    }

    //静态方法,可直接调用
    public static String doPostForJson(String url, JSONObject jsonParams) {
    CloseableHttpClient closeableHttpClient = HttpClients.createDefault();

    // 配置超时时间
    RequestConfig requestConfig = RequestConfig.custom()
    .setConnectTimeout(5000)
    .setConnectionRequestTimeout(5000)
    .setSocketTimeout(5000)
    .setRedirectsEnabled(true)
    .build();

    HttpPost httpPost = new HttpPost(url);
    //设置超时时间
    httpPost.setConfig(requestConfig);
    httpPost.setHeader("Content-Type", "application/json");

    //JSONObject jsonObject = null;

    try {
    StringEntity entity = new StringEntity(jsonParams.toString(), "utf-8");
    entity.setContentEncoding("utf-8");
    entity.setContentType("application/json");
    httpPost.setEntity(entity);

    //执行post
    CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost);
    String strRequest = "";
    if (null != closeableHttpResponse && !"".equals(closeableHttpResponse)) {
    System.out.println(closeableHttpResponse.getStatusLine().getStatusCode());
    if (closeableHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    HttpEntity httpEntity = closeableHttpResponse.getEntity();
    strRequest = EntityUtils.toString(httpEntity);
    } else {
    strRequest = "Error Response" + closeableHttpResponse.getStatusLine().getStatusCode();
    }
    }
    return strRequest;

    } catch (ClientProtocolException e) {
    e.printStackTrace();
    return "协议异常";
    } catch (ParseException e) {
    e.printStackTrace();
    return "解析异常";
    } catch (IOException e) {
    e.printStackTrace();
    return "传输异常";
    } finally {
    try {
    if (closeableHttpClient != null) {
    closeableHttpClient.close();
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }
  • 相关阅读:
    [LintCode] 最长上升子序列
    [LintCode] 最长公共前缀
    [LintCode] A + B 问题
    [hihoCoder] 拓扑排序·一
    [LintCode] 拓扑排序
    [LintCode] 第k大元素
    [LintCode] 最小路径和
    [LeetCode] Factorial Trailing Zeros
    [LintCode] 尾部的零
    [LeetCode] Length of Last Word
  • 原文地址:https://www.cnblogs.com/jshtest/p/9070711.html
Copyright © 2011-2022 走看看