Jsoup请求http或https返回json字符串工具类

所需要的jar包如下:

jsoup-1.8.1.jar

依赖jar包如下:

httpclient-4.5.4.jar;
httpclient-cache-4.5.4.jar;
httpclient-win-4.5.4.jar;
httpcore-4.4.8.jar;
httpcore-ab-4.4.8.jar;
httpcore-nio-4.4.8.jar;
httpmime-4.5.4.jar;

Jsoup返回json字符串工具类JsoupHelper.java:

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.jsoup.Connection;
import org.jsoup.Connection.Response;
import org.jsoup.Jsoup; public class JsoupHelper { /**
* 获取连接
*
* @param url
* 请求url
* @param params
* 参数
* @param charset
* 参数编码方式
* @param headers
* 头部信息
* @return
*/
public static Connection getConnection(String url, Map<String, String> params, String charset,
Map<String, String> headers) {
if (params != null) {
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
Iterator<Entry<String, String>> iter = params.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, String> entry = iter.next();
String key = entry.getKey();
String value = entry.getValue();
paramList.add(new BasicNameValuePair(key, value));
}
try {
String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(paramList, charset));
StringBuffer sb = new StringBuffer();
sb.append(url);
if (url.indexOf("?") > 0) {
sb.append("&");
} else {
sb.append("?");
}
sb.append(paramStr);
url = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
Connection conn = Jsoup.connect(url);
conn.timeout(10000); // 10秒超时
conn.ignoreContentType(true); if (headers != null) {
Iterator<Entry<String, String>> iter = headers.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, String> entry = iter.next();
String key = entry.getKey();
String value = entry.getValue();
conn.header(key, value);
}
}
return conn;
} public static String getJson(String url, Map<String, String> params, String charset,
Map<String, String> headers) {
String result = "";
try {
Connection conn = getConnection(url, params, charset, headers);
Response response = conn.execute();
result = response.body();
} catch (IOException e) {
e.printStackTrace();
}
return result;
} }

调用代码:

import java.util.HashMap;
import java.util.Map;
public class JsoupTest {
public static Map<String, String> headers = null;
static {
headers = new HashMap<String, String>();
headers.put("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36");
headers.put("Accept-Language", "zh-CN,zh;q=0.8");
headers.put("Accept-Encoding", "gzip, deflate, sdch, br");
headers.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
headers.put("Connection", "Keep-Alive");
headers.put("Content-Type", "application/json;charset=UTF-8");
} public void test() {
String url = "http://xxxxxx";
String content = JsoupHelper.get(url, null, "utf-8", headers);
System.out.println("返回的json字符串:" + content);
}
}

获取Json串后解析,获取key和value值,参考:http://www.cnblogs.com/lizm166/p/8078846.html

Jsoup请求http或https返回json字符串工具类的更多相关文章

  1. HttpClient 模拟发送Post和Get请求 并用fastjson对返回json字符串数据解析,和HttpClient一些参数方法的deprecated(弃用)的综合总结

    最近在做一个接口调用的时候用到Apache的httpclient时候,发现引入最新版本4.5,DefaultHttpClient等老版本常用的类已经过时了,不推荐使用了:去官网看了一下在4.3之后就抛 ...

  2. Java 实现将其他类型数据转换成 JSON 字符串工具类

    这是网上一个大神实现的,具体出处已找不到,在这做个记录,方便以后使用. package com.wb.test; import java.beans.IntrospectionException; i ...

  3. laravel封装返回json信息工具类

    1.工具类可以一次写入多方多方调用,很大程度的节约开发时间得到想要的信息 这里演示一个json接口的工具类(文件定义在App\Http\Controllers\Tools)中 <?php /** ...

  4. ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  5. 根据传入url请求,返回json字符串

    /** * 根据传入url请求,返回json字符串 * @param url * @return * @throws UnsupportedEncodingException */ public st ...

  6. springmvc返回json字符串中文乱码问题

    问题: 后台代码如下: @RequestMapping("menuTreeAjax") @ResponseBody /** * 根据parentMenuId获取菜单的树结构 * @ ...

  7. shiro 返回json字符串 + 自定义filter

    前言: 在前后端分离的项目中, 在使用shiro的时候, 我们绝大部分时候, 并不想让浏览器跳转到那个页面去, 而是告诉前端, 你没有登录, 或者没有访问权限. 那这时候, 我们就需要返回json字符 ...

  8. 160506、Spring mvc新手入门(11)-返回json 字符串的其他方式

    Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式 一.使用  PrintWriter printWriter  直接输出字符串到返回结果中    不需 ...

  9. spring mvc返回json字符串的方式

    spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring- ...

随机推荐

  1. js处理数组问题,以及数组转化问题

    var str="1,2,1,2,31,2";var arr = str.split(",");for (var i = 0; i < arr.lengt ...

  2. jeb 下载

    jeb-1.5.201408040(full)_keygen_by_scz(20150725) http://scz.617.cn/ 修改jeb_wincon.bat 中java home 变量,然后 ...

  3. 关于LeNet-5卷积神经网络 S2层与C3层连接的参数计算的思考???

    https://blog.csdn.net/saw009/article/details/80590245 关于LeNet-5卷积神经网络 S2层与C3层连接的参数计算的思考??? 首先图1是LeNe ...

  4. LightOJ 1027 - A Dangerous Maze(求期望)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1027 题意:又一个迷宫,有n个门,每个门又一个值num,如果num>0 说明在n ...

  5. Django ORM之QuerySet

    Django ORM用到三个类:Manager.QuerySet.Model.Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己 ...

  6. compass利用koala在chrome开启scss调试

    compass不生成maps文件,所载调试css上,极不方便.看到下图的调试方式,怎么做. 利用用koala来解决,具体步骤如下: 1.确保自己安装了ruby和sass,compass.接着安装 co ...

  7. 集成RabbitMQ做秒杀

    由于秒杀的并发量太大,所以仅仅使用缓存是不够的,还需要用到RabbitMQ. 这里推荐一款用于分库分表的中间件:mycat 解决超卖的问题(看第五章节): 秒杀接口优化: 实操: 然后把下载好的文件上 ...

  8. mysql python pymysql模块 增删改查 插入数据 介绍 commit() execute() executemany() 函数

    import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...

  9. vue之vue-cookies

    vue之vue-cookies npm链接:https://www.npmjs.com/package/vue-cookies 安装: npm install vue-cookies --save 使 ...

  10. U盘安装win10操作系统

    https://www.zhihu.com/question/39207359   1:进入微软官方网站,点击立即下载工具,下载完成mediacreationtool,双击打开,接受协议  https ...