zoukankan      html  css  js  c++  java
  • httpclient 封装post 和get

    public class HttpClientUtils {

    private static Logger logger = Logger.getLogger(HttpClientUtils.class);

    /**
    * get请求
    *
    * @return
    */
    public static String doGet(String url) {
    try {
    HttpClient client = new DefaultHttpClient();
    // 发送get请求
    HttpGet request = new HttpGet(url);
    HttpResponse response = client.execute(request);

    /** 请求发送成功,并得到响应 **/
    if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    /** 读取服务器返回过来的json字符串数据 **/
    String strResult = EntityUtils.toString(response.getEntity());
    return strResult;
    }
    } catch (IOException e) {
    e.printStackTrace();
    }

    return null;
    }

    /**
    * post请求(用于key-value格式的参数)
    *
    * @param url
    * @param params
    * @return
    */
    public static String doPost(String url, Map params) {

    BufferedReader in = null;
    try {
    // 定义HttpClient
    HttpClient client = new DefaultHttpClient();
    // 实例化HTTP方法
    HttpPost request = new HttpPost();
    request.setHeader("Accept", "application/json");
    request.setHeader("Content-Type", "application/json");
    request.setURI(new URI(url));

    // 设置参数
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
    String name = (String) iter.next();
    String value = String.valueOf(params.get(name));
    nvps.add(new BasicNameValuePair(name, value));

    // System.out.println(name +"-"+value);
    }
    request.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

    HttpResponse response = client.execute(request);
    int code = response.getStatusLine().getStatusCode();
    if (code == 200) { // 请求成功
    in = new BufferedReader(new InputStreamReader(response
    .getEntity().getContent(), "utf-8"));
    StringBuffer sb = new StringBuffer("");
    String line = "";
    String NL = System.getProperty("line.separator");
    while ((line = in.readLine()) != null) {
    sb.append(line + NL);
    }

    in.close();

    return sb.toString();
    } else { //
    System.out.println("状态码:" + code);
    return null;
    }
    } catch (Exception e) {
    e.printStackTrace();

    return null;
    }
    }

    /**
    * post请求(用于请求json格式的参数)
    *
    * @param url
    * @param params
    * @return
    */
    public static String doPost(String url, String params) throws Exception {

    CloseableHttpClient httpclient = HttpClients.createDefault();
    HttpPost httpPost = new HttpPost(url);// 创建httpPost
    httpPost.setHeader("Accept", "application/json");
    httpPost.setHeader("Content-Type", "application/json");
    String charSet = "UTF-8";
    StringEntity entity = new StringEntity(params, charSet);
    httpPost.setEntity(entity);
    CloseableHttpResponse response = null;
    try {
    response = httpclient.execute(httpPost);
    StatusLine status = response.getStatusLine();
    int state = status.getStatusCode();
    if (state == HttpStatus.SC_OK) {
    HttpEntity responseEntity = response.getEntity();
    String jsonString = EntityUtils.toString(responseEntity);
    System.out.println(state);
    return jsonString;
    } else {
    logger.error("请求返回:"+state+"("+url+")");
    }
    } finally {
    if (response != null) {
    try {
    response.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    try {
    httpclient.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return null;
    }

    public static void main(String[] args) {
    String url="http://zjhtcarapi.1hai.cn/Car/AddCarGPSLocat";
    JSONObject jsonne=new JSONObject();
    jsonne.put("ID",0);
    jsonne.put("OrderNo","");
    jsonne.put("storeID",0);
    jsonne.put("VinNo","");
    jsonne.put("LocateTime","2017-09-19T02:59:39.902Z");
    jsonne.put("CreateTime","2017-09-19T02:59:39.902Z");
    String m = jsonne.toString();
    String s;
    try {
    s = doPost(url,m);
    System.out.println(s);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }



    // String s=doGet("http://zjhtcarapi.1hai.cn/Car/GetCar?carId=82");
    // System.out.println(s);

    }

  • 相关阅读:
    TCP/IP 网路基础
    三、Django之请求与响应-Part 1
    二、Django快速安装
    Linux 优化详解
    缓存的正确使用方式
    HTML从入门到放弃
    Ansible开发之路
    程序猿数据库学习指南
    MySQL错误代码大全
    Python之网络编程
  • 原文地址:https://www.cnblogs.com/lixiaowei395659729/p/8657407.html
Copyright © 2011-2022 走看看