HTTP工具类----方便系统间HTTP数据交互使用



import com.alibaba.fastjson.JSONObject;
import org.apache.http.*;
import org.apache.http.client.HttpClient;
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.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class HttpUtil {

    /**
     * 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.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);
		return jsonString;
	    } else {
		System.out.println("请求返回:" + 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 body = HttpUtil.doGet("http://youngorwx.youngor.com/tyh/api/wx/webGetYyMessage.do?sampnm=JK040");
	System.out.println(body);
	JSONObject obj = JSONObject.parseObject(body);
	Object data = obj.get("data");
	if (data != null) {
	    JSONObject obData = JSONObject.parseObject(data.toString().replaceAll("\\[|\\]", ""));
	    System.out.println(obData.get("spsenm"));
	    System.out.println(obData.get("sampnm"));
	    System.out.println(obData.get("mtcomp"));
	    System.out.println(obData.get("name"));
	    System.out.println(obData.get("photo"));
	    System.out.println(obData.get("sprtpr"));
	    System.out.println(obData.get("versnm"));
	} else {
	    System.out.println("没取到商品信息");
	}
	System.out.println();
    }
}

共享此工具,方便大家使用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值