基于 HttpClients 的url访问

来源:互联网 发布:c语言预处理命令作用 编辑:程序博客网 时间:2024/05/05 23:56
package systems.basesys.helper;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.commons.lang.StringUtils;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;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.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;public class HttpUtils {/** * 执行一个HTTP POST请求,返回结果 *  * @param paramMap *            请求字段 * @param url *            请求地址 * @return 返回json数据 * @throws Exception */public static String doPost(String url, Map<String, String> paramMap)throws Exception {if (StringUtils.isBlank(url)) {return null;}CloseableHttpClient httpclient = null;String json = null;try {httpclient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);if (paramMap != null && paramMap.size() > 0) {List<NameValuePair> nvps = new ArrayList<NameValuePair>();for (String key : paramMap.keySet()) {nvps.add(new BasicNameValuePair(key, paramMap.get(key)));}httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));}CloseableHttpResponse response2 = httpclient.execute(httpPost);HttpEntity entity2 = response2.getEntity();json = EntityUtils.toString(entity2, "UTF-8");response2.close();} finally {if (httpclient != null) {httpclient.close();}}return json;}/** * 执行一个HTTP POST请求,返回结果 *  * @param paramMap *            请求字段 * @param url *            请求地址 * @return 返回json数据 * @throws Exception */public static String doPalmPost(String url, String param)throws Exception {if (StringUtils.isBlank(url)) {return null;}CloseableHttpClient httpclient = null;String json = null;try {httpclient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.setEntity(new StringEntity(param, "UTF-8"));CloseableHttpResponse response2 = httpclient.execute(httpPost);HttpEntity entity2 = response2.getEntity();json = EntityUtils.toString(entity2, "UTF-8");response2.close();} finally {if (httpclient != null) {httpclient.close();}}return json;}/** * 执行一个HTTP GET请求,返回结果 *  * @param url *            请求的URL地址 * @param queryString *            请求的查询参数,可以为null */public static String doGet(String url) throws Exception {if(StringUtils.isBlank(url)){return null;}String json = null;CloseableHttpClient httpclient = null;try {httpclient = HttpClients.createDefault();HttpGet get = new HttpGet(url);CloseableHttpResponse response2 = httpclient.execute(get);HttpEntity entity2 = response2.getEntity();json = EntityUtils.toString(entity2, "UTF-8");response2.close();} finally {if (httpclient != null) {httpclient.close();}}return json;}public static void main(String[] args) {/*Map<String, String> paramMap = new HashMap<String, String>();paramMap.put("q", "美女");paramMap.put("start", "0");paramMap.put("rows", "10");paramMap.put("wt", "json");String json = "";try {System.out.println(doPost("http://101.251.204.197/solr_home/book/select", paramMap));json = doGet("http://101.251.204.197/solr_home/book/select?q=美女&start=0&rows=100&wt=json&indent=true");JSONObject obj = JSONObject.fromObject(json);JSONObject response = obj.getJSONObject("response");JSONArray keysArray = response.getJSONArray("docs");for (int i = 0; i < keysArray.size(); i++) {String bookString = keysArray.getString(i);obj = JSONObject.fromObject(bookString);//System.out.println(obj.get("book_name"));}System.out.println(URLDecoder.decode("%E7%BE%8E%E5%A5%B3", "UTF-8"));} catch (Exception e) {e.printStackTrace();}*/// System.out.println(json);}}

0 0
原创粉丝点击