为什么 用快递100查的信息和 小米官网快递信息查的不一样?

在官网查不到的物流信息,但通过快递100能查到,是为什么?_百度知道
在官网查不到的物流信息,但通过快递100能查到,是为什么?
来自百度知道认证团队
采纳数:2012
获赞数:16294
擅长:暂未定制
1,无物流信息:如果没有任何物流信息,则表示物流公司没有扫描这个单号入系统。原因可能商家提交物流信息,但是并没有给物流公司送货;或者商家填写物流信息有错;或者物流公司收到物件还没有及时扫描等。2,物流分发信息长时间不更新:如果物流已经是提示发往某地,但是物流信息好几天没有更新。原因可能是物流目的地比较偏远,中间派送时间很长;或者处于快递高峰期物流公司效率不高;或者物件派件过程丢件,一般超过10天没有更新的很可能丢件了。3,物流派件信息长时间不更新:如果物件已经分配派件员,但是几天都没有送货上门或者派件员未联系收件人。原因可能是物流地址与联系方式不正确;或者派件员丢失包裹;或者被他人代签后没有及时上传收件人信息等。
来自知道合伙人认证行家
银行类行家
采纳数:53852
获赞数:99319
银行办卡资料 各大银行网站资料
运单已到达北京市 北京分拣中心 已分拣
运单已从北京市 北京分拣中心发出,下一站潍坊市 山东潍坊分拣中心 已出库
运单已到达潍坊市 山东潍坊分拣中心 已分拣
运单已从潍坊市 山东潍坊分拣中心发出,下一站山东如风达 已出库
运单已由济南市 山东如风达扫描入站 联系电话: 已入站
运单已由配送员丁占平送出,联系电话:3 已分配
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。同时也分享一个火车票查询的:
接口估计不能用了,新的接口php写的,可以研究下。
,欢迎吐槽。
火车余票查询源码地址(接口已经不可用):
快递查询源码地址:
获取快递信息的部分内容参考了网上的一个代码。
1、利用快递100提供的免费api查询快递相关信息。这里是解析返回来的网页。快递100需要申请key,但是个人app只提供了这个,so。。。。。。。
2、我在子线程里面去获取信息,处理,然后利用handler更新Ui,
最后的结果中,用了两个List&String&
一个用于存放时间,另外一个对应,存放快递物流信息,因为考虑到在后面显示的时候,时间和内容分开(原本打算,做个界面类似于淘宝里面的效果,但后来放弃了,。有时间再做个demo。请看图方框部分:
处理数据,通过将网页元素里面的&p&&/p&结点里面的内容拿出来,取出需要的东西就行。但是有个地方我好像随便了点,不靠谱的做法,
else if (tempStr.startsWith("建议操作")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
org.jsoup.nodes.Document doc = Jsoup.parse(result);//
Elements element = doc.body().getElementsByTag("p");
Object[] objArr = element.toArray();
Pattern p = Pattern.compile("&.+?&|\\&|\\·",
Pattern.DOTALL);
String tempStr =
ArrayList&String& timeList = new ArrayList&String&();// 存放快递的时间
ArrayList&String& infoList = new ArrayList&String&();// 存放快递的对应时间点的信息
for (int i = 3; i & objArr.length - 2; i++) {
Matcher m = p.matcher(objArr[i].toString());
tempStr = m.replaceAll("");
if (TextUtils.isEmpty(tempStr)) {
} else if (tempStr.startsWith("建议操作")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
00:25:57 福建省泉州市石狮市公司 已收件 操作员:包叶明
timeList.add(new String(tempStr.substring(0, 19)));
infoList.add(new String(tempStr.substring(20)));
* 子线程联网获取数据
* @author xiangxm
class MyThread extends Thread {
private HashMap&String, String& threadMap =
public MyThread(HashMap&String, String& map) {
threadMap = new HashMap&String, String&();
this.threadMap =
public void run() {
int rand = (int) Math.random() * 1000 + 1000;
String strurl = "http://wap.kuaidi100.com/q.jsp?rand=" + rand
+ "&id=" + threadMap.get("companyId") + "&postid="
+ threadMap.get("order_num") + "&fromWeb=null";
Message msg = new Message();
msg.what = WAITTING;
mHandler.sendMessage(msg);// http://wap.kuaidi100.com/q.jsp?rand=1000&id=aae&postid=&fromWeb=null
String result = getData(strurl);// http://m.kuaidi100.com/index_all.html?type=yuantong&postid=
if (result.equals("")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
org.jsoup.nodes.Document doc = Jsoup.parse(result);//
Elements element = doc.body().getElementsByTag("p");
Object[] objArr = element.toArray();
Pattern p = Pattern.compile("&.+?&|\\&|\\·",
Pattern.DOTALL);
String tempStr =
ArrayList&String& timeList = new ArrayList&String&();// 存放快递的时间
ArrayList&String& infoList = new ArrayList&String&();// 存放快递的对应时间点的信息
for (int i = 3; i & objArr.length - 2; i++) {
Matcher m = p.matcher(objArr[i].toString());
tempStr = m.replaceAll("");
if (TextUtils.isEmpty(tempStr)) {
} else if (tempStr.startsWith("建议操作")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
00:25:57 福建省泉州市石狮市公司 已收件 操作员:包叶明
timeList.add(new String(tempStr.substring(0, 19)));
infoList.add(new String(tempStr.substring(20)));
Log.e("----------时间---------最后结果", timeList.toString());
Log.e("----------物流的详细信息---------最后结果", infoList.toString());
msg = new Message();
msg.what = FINISHED;
mHandler.sendMessage(msg);
if (timeList.isEmpty() || infoList.isEmpty()) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
Intent intent = new Intent();
intent.setClass(MainActivity.this, PackageDetailInfoActivity.class);
intent.putStringArrayListExtra("timeList", timeList);
intent.putStringArrayListExtra("infoList", infoList);
Bundle bundle = new Bundle();
bundle.putString("companyName", infoMap.get("companyName"));// 公司名称
bundle.putString("companyId", infoMap.get("companyId"));
bundle.putString("order_num", infoMap.get("order_num"));// 运单号
intent.putExtras(bundle);
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
获取数据方法:
* @param strurl
public String getData(String strurl) {
String output = "";
url = new URL(strurl);
InputStream is = url.openStream();
BufferedReader buffer = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
String tem = "";
while ((tem = buffer.readLine()) != null) {
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "";
3、handler用于刷新Ui
private static final int WAITTING = 0;
private static final int FINISHED = 1;
private static final int ERROR = 2;
private ProgressDialog progressD
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case WAITTING:
progressDialog.show();
case ERROR:
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
case FINISHED:
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
Common.closeKeyboardCommAct(MainActivity.this);// 关闭键盘
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, "未获取到相关信息,请验证查询条件!",
Toast.LENGTH_SHORT).show();
super.handleMessage(msg);
4、整个画面代码:MainActivity.java
检查网络,离线使用时候,提醒.....选择快递公司,输入订单号,否则提醒,动画效果抖动文本框.....利用正则表达式检查输入的单据号是否符合标准,主要是放置输入汉字等字符。因为各个快递公司,单据号包含的不一样,有的有字母有的没有。再按一次退出程序 long waitTime = 2000;
long touchTime = 0;
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if ((currentTime - touchTime) &= waitTime) {
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
touchTime = currentT
package com.xiangxm.
import java.io.BufferedR
import java.io.IOE
import java.io.InputS
import java.io.InputStreamR
import java.net.MalformedURLE
import java.net.URL;
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.regex.M
import java.util.regex.P
import org.jsoup.J
import org.jsoup.select.E
import android.app.A
import android.app.AlertD
import android.app.ProgressD
import android.content.I
import android.content.pm.ActivityI
import android.os.B
import android.os.H
import android.os.M
import android.text.TextU
import android.util.L
import android.view.M
import android.view.MenuI
import android.view.MenuI
import android.view.MotionE
import android.view.V
import android.view.View.OnTouchL
import android.view.W
import android.view.animation.A
import android.view.animation.AnimationU
import android.view.inputmethod.InputMethodM
import android.widget.B
import android.widget.EditT
import android.widget.LinearL
import android.widget.TextV
import android.widget.T
import com.xiangxm.cls.cls_
import com.xiangxm.cls.cls_
import com.xiangxm.myapp.MyA
import com.xiangxm.utils.C
public class MainActivity extends Activity implements
android.view.View.OnClickListener {
private LinearLayout selectCompanyL
private Button searchB
private Button historyB
private EditText order_numT
private TextView companynameT
private TextV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setUiOptions(
ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
setContentView(R.layout.activity_main);
myApplication = MyApplication.getInstance();
initView();
Common.closeWhenOncreate(MainActivity.this);// 进入界面关闭软键盘
* 初始化界面
public void initView() {
title = (TextView) findViewById(R.id.title);
phonenumber = (TextView) findViewById(R.id.phonenumbertxt);
helpinfotext = (TextView) findViewById(R.id.helpinfotext);
companynameTxt = (TextView) findViewById(R.id.companynametxt);
companynameTxt.setText("");
selectCompanyLayout = (LinearLayout) findViewById(R.id.companyname_layout);
searchBtn = (Button) findViewById(R.id.searchbtn);
historyBtn = (Button) findViewById(R.id.historybtn);
order_numTxt = (EditText) findViewById(R.id.order_numtxt);
selectCompanyLayout.setOnClickListener(this);
searchBtn.setOnClickListener(this);
historyBtn.setOnClickListener(this);
progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("正在为您查询...");
progressDialog.setCancelable(true);
progressDialog.setTitle("提示信息");
changeBtnBackground();
if (!Common.hasShortcut(this)) { // 创建快捷方式
Common.addShortcut(this);
if (!Common.onlineFlag(MainActivity.this)) {
Toast.makeText(this, "离线使用中,非联网状态不能查询订单信息!", Toast.LENGTH_SHORT)
private MyApplication myA
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent =
if (v.getId() == R.id.searchbtn) {
if (TextUtils.isEmpty(companynameTxt.getText())) {
Animation shakeAnim = AnimationUtils.loadAnimation(
MainActivity.this, R.anim.shake_x);
this.companynameTxt.startAnimation(shakeAnim);
Toast.makeText(MainActivity.this, "您还未选择快递公司!",
Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(order_numTxt.getText())) {
Animation shakeAnim = AnimationUtils.loadAnimation(
MainActivity.this, R.anim.shake_x);
this.order_numTxt.startAnimation(shakeAnim);
Toast.makeText(MainActivity.this, "您还未输入订单号!",
Toast.LENGTH_SHORT).show();
String order_num = order_numTxt.getText().toString().trim();
Pattern p = Pattern.compile("[\\da-zA-Z]+?");
Matcher m = p.matcher(order_num);
if (!m.matches()) {
Toast.makeText(MainActivity.this, "您的订单号不符合标准,请检查!",
Toast.LENGTH_SHORT).show();
infoMap.put("order_num", order_num);
infoMap.put("mark", "");// 备注信息暂时存为空
new MyThread(infoMap).start();
} else if (v.getId() == R.id.companyname_layout) {
intent = new Intent();
intent.setClass(MainActivity.this, SelectCompanyActivity.class);
startActivityForResult(intent, 6);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
} else if (v.getId() == R.id.historybtn) {
boolean bol = cls_savehistory.checkHasDataOrNot(Common.dbh);
if (bol) {
// 可伸缩的listview
intent = new Intent();
intent.setClass(MainActivity.this,
CheckPackageHisActivity.class);
overridePendingTransition(R.anim.slide_left, R.anim.slide_right);
startActivity(intent);
Toast.makeText(MainActivity.this, "暂无历史记录!", Toast.LENGTH_SHORT)
HashMap&String, String& infoMap = new HashMap&String, String&();
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// // MenuItem item = menu.add(0, SETTINGS_ID, 0, "settings");
// // item.setIcon(R.drawable.ic_setting);
// // item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
// MenuInflater inflater = getMenuInflater();
// inflater.inflate(R.menu.activity_main, menu);
// return super.onCreateOptionsMenu(menu);
// @Override
// public boolean onOptionsItemSelected(MenuItem item) {// 处理点击事件 最下面
// switch (item.getItemId()) {
// * case R.id.menu_settings: startActivity(new Intent(this,
// * SettingActivity.class));
// case R.id.menu_delete:
// new AlertDialog.Builder(this).setTitle("Action Menu Item")
// .setPositiveButton("确认", null)
// .setNegativeButton("取消", null).show();
// default:
// return super.onOptionsItemSelected(item);
* 修改按钮背景图片
public void changeBtnBackground() {
class MyBtnOnTouch implements OnTouchListener {
int drawable[] =
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.searchbtn) {
drawable = new int[] { R.drawable.searchbtn,
R.drawable.searchbtn_pressed };
} else if (v.getId() == R.id.historybtn) {
drawable = new int[] { R.drawable.history_btn_normal,
R.drawable.history_btn_pressed };
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
v.setBackgroundResource(drawable[1]);
case MotionEvent.ACTION_UP:
v.setBackgroundResource(drawable[0]);
searchBtn.setOnTouchListener(new MyBtnOnTouch());
historyBtn.setOnTouchListener(new MyBtnOnTouch());
private static final int WAITTING = 0;
private static final int FINISHED = 1;
private static final int ERROR = 2;
private ProgressDialog progressD
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case WAITTING:
progressDialog.show();
case ERROR:
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
case FINISHED:
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
Common.closeKeyboardCommAct(MainActivity.this);// 关闭键盘
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, "未获取到相关信息,请验证查询条件!",
Toast.LENGTH_SHORT).show();
super.handleMessage(msg);
* 用于存放结果的map key:timeList value: infoList
private HashMap&List&String&, List&String&& resultMap = new HashMap&List&String&, List&String&&();
* 子线程联网获取数据
* @author xiangxm
class MyThread extends Thread {
private HashMap&String, String& threadMap =
public MyThread(HashMap&String, String& map) {
threadMap = new HashMap&String, String&();
this.threadMap =
public void run() {
int rand = (int) Math.random() * 1000 + 1000;
String strurl = "http://wap.kuaidi100.com/q.jsp?rand=" + rand
+ "&id=" + threadMap.get("companyId") + "&postid="
+ threadMap.get("order_num") + "&fromWeb=null";
Message msg = new Message();
msg.what = WAITTING;
mHandler.sendMessage(msg);// http://wap.kuaidi100.com/q.jsp?rand=1000&id=aae&postid=&fromWeb=null
String result = getData(strurl);// http://m.kuaidi100.com/index_all.html?type=yuantong&postid=
if (result.equals("")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
org.jsoup.nodes.Document doc = Jsoup.parse(result);//
Elements element = doc.body().getElementsByTag("p");
Object[] objArr = element.toArray();
Pattern p = Pattern.compile("&.+?&|\\&|\\·",
Pattern.DOTALL);
String tempStr =
ArrayList&String& timeList = new ArrayList&String&();// 存放快递的时间
ArrayList&String& infoList = new ArrayList&String&();// 存放快递的对应时间点的信息
for (int i = 3; i & objArr.length - 2; i++) {
Matcher m = p.matcher(objArr[i].toString());
tempStr = m.replaceAll("");
if (TextUtils.isEmpty(tempStr)) {
} else if (tempStr.startsWith("建议操作")) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
00:25:57 福建省泉州市石狮市公司 已收件 操作员:包叶明
timeList.add(new String(tempStr.substring(0, 19)));
infoList.add(new String(tempStr.substring(20)));
Log.e("----------时间---------最后结果", timeList.toString());
Log.e("----------物流的详细信息---------最后结果", infoList.toString());
msg = new Message();
msg.what = FINISHED;
mHandler.sendMessage(msg);
if (timeList.isEmpty() || infoList.isEmpty()) {
msg = new Message();
msg.what = 10;
mHandler.sendMessage(msg);
Intent intent = new Intent();
intent.setClass(MainActivity.this, PackageDetailInfoActivity.class);
intent.putStringArrayListExtra("timeList", timeList);
intent.putStringArrayListExtra("infoList", infoList);
Bundle bundle = new Bundle();
bundle.putString("companyName", infoMap.get("companyName"));// 公司名称
bundle.putString("companyId", infoMap.get("companyId"));
bundle.putString("order_num", infoMap.get("order_num"));// 运单号
intent.putExtras(bundle);
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
* @param strurl
public String getData(String strurl) {
String output = "";
url = new URL(strurl);
InputStream is = url.openStream();
BufferedReader buffer = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
String tem = "";
while ((tem = buffer.readLine()) != null) {
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "";
// 点击空白处 软键盘消失
public boolean onTouchEvent(MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
if (imm != null && imm.isActive()) {
return imm.hideSoftInputFromWindow(this.getCurrentFocus()
.getWindowToken(), 0);
long waitTime = 2000;
long touchTime = 0;
public void onBackPressed() {
long currentTime = System.currentTimeMillis();
if ((currentTime - touchTime) &= waitTime) {
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
touchTime = currentT
private TextV
private TextV
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (resultCode == 8 && requestCode == 6) {
Bundle bundle = data.getExtras();
if (bundle == null) {
Toast.makeText(MainActivity.this, "获取数据失败!", Toast.LENGTH_SHORT)
infoMap = new HashMap&String, String&();
String name = bundle.getString("companyName");
String str = bundle.getString("companyId");
String id = TextUtils.isEmpty(str) ? "" :
infoMap.put("companyName", name);
infoMap.put("companyId", id);
List&String& resultList = cls_companyinfo.getCompanyName(
Common.dbh, id);
if (resultList.get(0).equals("")) {
helpinfotext.setVisibility(View.GONE);
title.setVisibility(View.GONE);
title.setText("");
title.setText("温馨提示:");
helpinfotext.setText("查询须知:" + resultList.get(0));
if (resultList.get(1).equals("")) {
phonenumber.setVisibility(View.GONE);
title.setVisibility(View.GONE);
title.setText("");
title.setText("温馨提示:");
phonenumber.setText("查询电话:" + resultList.get(1));
companynameTxt.setText(TextUtils.isEmpty(name) ? "" : name);
super.onActivityResult(requestCode, resultCode, data);
快递100 物流接口对接
到快递100(https://www.kuaidi100.com/openapi/applyapi.shtml),申请免费版本。快递100授权key
快递查询API(适用于除EMS、顺丰、申通、圆通...
Java快递物流查询接口,怎么接入物流接口API,如何根据单号查询物流跟踪的详细信息的Demo详细说明。
Java怎么写物流接口,怎么接入物流接口,如何根据单号查询物流跟踪的详细信息
实现需求:
根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能
Demo实例...
模拟快递100请求 通过快递单号获取物流信息
需求:只提供快递单号获取物流信息
思路:通过快递100获取
实现:快递100有2个接口,可以模拟请求操作。
1.通过快递单号获取快递公司代码。
2.通过快递公司代码和快递单号获取物流信息。
通过快递100 api
获取物流信息
package com.dongfang.common.utils.
import java.io.IOE
import java.util.ArrayLis...
快递查询API调用,获得物流单号的跟踪信息
通过向指定的地址发送请求,即可返回如JSON、XML等格式的跟综结果。
1.请求地址
http://api.kuaidi.com/openapi.html?id=[]&com=[]&nu=[]&s...
[Android]快递查询——API的简单应用
最近接触到android的网络请求、获取数据等方面,于是乎做了一个小demo
API:全国快递查询
主要分为4个接口:快递公司...
快递100APIKey
物流配送进程快递100查询接口
物流配送进程快递100查询接口
基于python的快递查询系统
import requests
import json
kd_dict = {1:'shentong',2:'ems',3:'shunfeng',4:'yuantong',5:'zhongtong',...
没有更多推荐了,

我要回帖

更多关于 物流和快递有什么不一样 的文章

 

随机推荐