拦截第三方快递物流 ,console控制台打印正常 ,浏览器显示正常 ,传至后台乱码

使用 apache.http.  可以解决 压缩的json文件  浏览器会自动解压但我们的后台不会package com.zjyouth.utils;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.zip.GZIPInputStream;/*** Created by Administrator on 2018/8/7.*/
public class LogisticsUtil {public static final String QUERYURL = "http://www.kuaidi100.com/query?";public static String setUrl(String logisticsCode, String logisticsNo) {String temp = String.valueOf(Math.random());StringBuilder sb = new StringBuilder(QUERYURL);sb.append("tpye=").append(logisticsCode).append("&");sb.append("postid=").append(logisticsNo).append("&");sb.append("temp=").append(temp);return sb.toString();}public static String queryData(String logisticsCode, String logisticsNo) {String line = "";String temp = String.valueOf(Math.random());String url = "http://www.kuaidi100.com/query?type=" + logisticsCode + "&postid=" + logisticsNo + "&temp=" + temp ;return getLogisticDetail(url);}public static String getLogisticDetail(String url) {CloseableHttpClient client;client = HttpClients.createDefault();HttpGet get = new HttpGet(url);HttpResponse response;try {response = client.execute(get);HttpEntity entity = response.getEntity();if (entity != null) {InputStream instreams = entity.getContent();String str =  convertStreamToString(instreams);get.abort();return str;}} catch (IOException e) {e.printStackTrace();}return null;}private static String convertStreamToString(InputStream is) {StringBuilder sb1 = new StringBuilder();byte[] bytes = new byte[4096];int size;try {while ((size = is.read(bytes)) > 0) {String str = new String(bytes, 0, size, "UTF-8");sb1.append(str);}} catch (IOException e) {e.printStackTrace();} finally {try {is.close();} catch (IOException e) {e.printStackTrace();}}return sb1.toString();}public static String getLogisticsDetail(String logisticsCode, String logisticsNo) throws Exception {String logisticsDetail = queryData(logisticsCode, logisticsNo);return   logisticsDetail ;}//    public static void main(String[] args) throws HttpException, IOException {System.out.println(queryData("yunda", "3910202477100"));{"message":"快递公司参数异常:单号不存在或者已经过期","nu":"","ischeck":"0","condition":"","com":"","status":"201","state":"0","data":[]}
{"message":"ok","nu":"220192092873","ischeck":"0","condition":"00","com":"zhongtong","status":"200","state":"0","data":[{"time":"2018-08-07 14:57:08","ftime":"2018-08-07 14:57:08","context":"【嘉兴市】 快件离开 【杭州中转部】 发往 【滨江东部】","location":"杭州中转部"},{"time":"2018-08-07 14:51:10","ftime":"2018-08-07 14:51:10","context":"【嘉兴市】 快件到达 【杭州中转部】","location":"杭州中转部"},{"time":"2018-08-05 19:18:37","ftime":"2018-08-05 19:18:37","context":"【哈尔滨市】 快件离开 【哈尔滨中转】 发往 【杭州中转部】","location":"哈尔滨中转"},{"time":"2018-08-05 19:14:31","ftime":"2018-08-05 19:14:31","context":"【哈尔滨市】 快件到达 【哈尔滨中转】","location":"哈尔滨中转"},{"time":"2018-08-05 18:02:06","ftime":"2018-08-05 18:02:06","context":"【哈尔滨市】 快件离开 【哈尔滨透笼】 发往 【杭州中转部】","location":"哈尔滨透笼"},{"time":"2018-08-05 17:24:24","ftime":"2018-08-05 17:24:24","context":"【哈尔滨市】 【哈尔滨透笼】(0451-84674244) 的 于涛 (18745127530) 已揽收","location":"哈尔滨透笼"}]}String uuu = queryData("zhongtong", "220192092873");System.out.println(uuu);System.out.println(queryData("zhongtong", "220192092873"));
//        System.out.println(getLogisticsDetail("zhongtong", "220192092873"));
//    }}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java面向对象高级分层实例_数据库操作类

package bdqn.studentSys.Dao.impl; /**** 学生表的数据库操作类*/ import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;import bdqn.studentSys.Dao.BaseDao; import bdqn.studentSys.Dao.StudentDao; import bdqn…

shiro-权限概述

一、什么是权限 权限管理,一般根据系统的安全设置或安全规则,用户可以且只能访问自己被授予的资源。只要有用户名和密码,就一定会存在权限。 二、权限分类 访问权限 作为一个使用者或是访问者,你能够被允许看到的那些资源。 数…

ASP.NET Core Kestrel 中使用 HTTPS (SSL)

在ASP.NET Core中,如果在Kestrel中想使用HTTPS对站点进行加密传输,可以按照如下方式 申请证书 这一步就不详细说了,有免费的和收费的,申请完成之后会给你一个*.pfx结尾的文件。 添加NuGet包 nuget中查找然后再程序中添加引用Micro…

idea

war 发布 war explord 开发

Java最小堆解决TopK问题

转载自 Java最小堆解决TopK问题 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是个很常见的问题:例如学校要从全校学生中找到成绩最高的500名学生,再例如某搜索引擎要统计每天…

Shiro-概述

一、什么是Shiro shiro是Apache旗下的一个开源框架,将软件系统的安全认证相关功能抽取出来,实现用户身份证,权限授权,加密,会话等功能,组成一个通用的安全认证框架。 二、特点 易于理解的java security …

ASP.NET Core 缓存技术 及 Nginx 缓存配置

前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx的反向代理来降低我们后端应用程序的压力。那除了以上两点之…

localStorage、sessionStorage、Cookie的区别及用法

localStorage、sessionStorage、Cookie https://segmentfault.com/a/1190000012057010 localStorage、sessionStorage、Cookie的区别及用法 webstorage webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。 localStorage localSto…

shiro入门

一、身份认证 基本流程 流程如下: shiro把用户的数据封装成标识token,token一般封装着用户名,密码等信息使用Subject获取到封装着用户的数据标识tokenSubject将token交给SecurityManager,在SecurityManager安全中心中&#xff…

前后端分离开发模式下后端质量的保证 —— 单元测试

概述 在今天, 前后端分离已经是首选的一个开发模式。这对于后端团队来说其实是一个好消息,减轻任务并且更专注。在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验。当然单元测试并非在前后端分离流行之后才有,它很早…

查询近12个月的数据,没有数据的月份补零

可以有两种方法实现,一种是纯sql的方式,一种是sql和代码共用的形式 一、纯sql的形式 前半部分用于一个近12个月的表,然后再将查出来的数据和月份表相结合,就是想要的结果 select v.month,b.price price,ifnull(b.count,0) cou…

java图形验证码生成工具类

转载自 java图形验证码生成工具类生成验证码效果 ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.FileOutput…

.NET Core中的认证管理解析

0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册、登录等很多页面,也可以使用AuthorizeAttribute进行各种权限管理,看起来似乎十分方便。不过生成的代码都替…

散列算法,Remal使用散列算法

一、散列算法 散列算法让其保证不可逆,安全。这里举一个例子sh1的摘要算法。上代码 /*** 散列算法* author Administrator*/ public class HashRsaUtil {/*** 加密方式*/public static final String SHA1"SHA-1";/*** 加密次数*/public static final In…

简化得最没道理的6个汉字,让人大跌眼镜

文章来源于网络,侵删!!! 1、“進”被简化为“进”,“進”字是让人“越走越佳”。 简化字却把它改成了“进”字,让你越走越走到“井”里去了,井底之蛙自生自灭。 2、“廠”被简化为“厂”字&…

c++

#include <iostream> #include<cmath> using namespace std; int main() { int x; double a; double b; while(cin >> x ){//注意while处理多个case for(int i 0 ;i < x ; i ){ cin>>a; …

在docker中运行ASP.NET Core Web API应用程序

本文是一篇指导快速演练的文章&#xff0c;将介绍在docker中运行一个ASP.NET Core Web API应用程序的基本步骤&#xff0c;在介绍的过程中&#xff0c;也会对docker的使用进行一些简单的描述。对于.NET Core以及docker的基本概念&#xff0c;网上已经有很多文章对其进行介绍了&…

谈谈 Java 的克隆

转载自 谈谈 Java 的克隆为什么要克隆对象 做开发很少用到克隆的。我能想得到的是用于调用方法时作为参数传递&#xff0c;为了保证方法调用前后对象的内部结构不被破坏&#xff0c;可以克隆一个对象作为参数传递。 使类具有克隆能力 有人可能注意到 Object 类中有一个 native…

android启调支付宝

网上找了一个可以起吊支付宝的appdemo &#xff0c;它集成了服务器端&#xff0c;我先将其分离为app和服务器端&#xff0c;保证app在接收参数后可以启调支付宝 &#xff08;保证app这边是正确的 不然出错都不知道是服务器出错还是app出错&#xff09;&#xff0c;在 找网上资…

shiro-身份授权流程、案例

一、身份授权流程 首先调用Subject.isPermitted/hasRole接口&#xff0c;委托给SecurityManager.SecurityManager接着会委托给内部组件Authorizer.Authorizer再将其请求委托给我们的Realm去做&#xff0c;Realm才是真正干活的.realm将用户请求的参数封装成权限对象&#xff0c…