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. Eigen中的基本函数 及其对应的matlab函数

    原文地址C++矩阵库 Eigen 快速入门 不仅有函数的基本形式,还有对应的matlab函数,用起来很方便. Eigen 矩阵定义 #include <Eigen/Dense> Matri ...

  2. 使用Pangolon在同一副图中,画出两个轨迹,比较误差

    使用 code/ground-truth.txt 和 code/estimate.txt 两条轨迹.请你根据上面公式,实现 RMSE的计算代码,给出最后的 RMSE 结果.作为验算,参考答案为:2.2 ...

  3. Django ---- 基础题

    一. 1.写出你所知道Djang有关的所有命令(下载.安装等) .安装django pip install django ==  .创建项目 diango­admin startproject 项目名 ...

  4. Unified Modeling Language

    https://en.wikipedia.org/wiki/Unified_Modeling_Language

  5. Python面试数据库

    1.列举常见的关系型数据库和非关系型都有那些? 关系型 : MySQL,SQL Server ,Oracle , Sybase, DB2 非关系型 : Redis, MongodDB 2.MySQL常 ...

  6. flask操作简章

    https://blog.csdn.net/u011054333/article/details/70151857

  7. 软件工程-wordcount(C语言实现)

    Github项目地址:https://github.com/xiaobaot/wordcount-wc/tree/master WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数 ...

  8. kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录

    1.基本概念 Jenkins在DevOps工具链中是核心的流程管理中心,负责串联系统的构建流程.测试流程.镜像制作流程.部署流程等,在持续集成中常用到的工具如下: Maven:源代码编译工具 Robo ...

  9. nodejs(五)同步异步--BLOCKING THE EVENT LOOP

    1.BLOCKING THE EVENT LOOP Node and JavaScript runtimes in general are single-threaded event loops. O ...

  10. druid.io本地集群搭建 / 扩展集群搭建

    druid.io 是一个比较重型的数据库查询系统,分为5种节点 . 在此就不对数据库进行介绍了,如果有疑问请参考白皮书: http://pan.baidu.com/s/1eSFlIJS 单台机器的集群 ...