包裹侠-快递单号查询App

本文介绍了如何开发一款名为'包裹侠'的快递单号查询App,使用易源接口进行集成。开发者需要在易源官网注册并获取appid和secret。App包含MainActivity和NewsActivity,前者用于输入查询和显示历史记录,后者负责展示查询结果。网络请求通过GetContext和Getcompany类处理,GetContext从URL获取数据,GetImage用于获取快递公司图片。注意在使用getInputStream()时,minSdkVersion需设为14以下。
摘要由CSDN通过智能技术生成

首先我是使用了易源接口,所以要去申请接口。在官方网站注册号帐号后使用接口流程都有官方文档介绍

然后记下自己的appid和secret
这里写图片描述
找到接口
这里写图片描述

主要有两个Activity

MainActivity 主要是输入账号查询界面 还包括下面的历史纪录的一个listview

这里写图片描述

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
   

    private EditText editText_id;
    private AutoCompleteTextView edittext_name;
    private TextView textView;
    private TextInputLayout textInputLayout_id;

    private ListView listView;

    private HistoryDataBase myDataBase;
    private LayoutInflater layoutInflater;
    private ArrayList<Express> arrayList;
    ImageView imageView;
    Map map;
    List list;
    Intent news_intent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
        init();
    }

    public void init(){
  textView = (TextView)findViewById(R.id.text);
        editText_id = (EditText)findViewById(R.id.edittext_id);
        edittext_name = (AutoCompleteTextView)findViewById(R.id.edittext_name);
        textInputLayout_id=(TextInputLayout)findViewById(R.id.textinputlayout_id);
        Button button_query=(Button)findViewById(R.id.button_query);
        button_query.setOnClickListener(this);
        imageView =      (ImageView)findViewById(R.id.image_main);
      layoutInflater= getLayoutInflater();
         myDataBase=new HistoryDataBase(this);
        arrayList=myDataBase.getArray();
        listView=(ListView)findViewById(R.id.listView1);
        final HistoryAdapter historyAdapter=new HistoryAdapter(layoutInflater,arrayList);
        listView.setAdapter(historyAdapter);
        /**
         * 点击条目查询
         */
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                editText_id.setText(arrayList.get(i).getExpressNumber());
                edittext_name.setText(arrayList.get(i).getExpressName());
            }
        });
        /**
         * 长按可删除
         */
        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(final AdapterView<?> adapterView, View view, final int position, long l) {
                new AlertDialog.Builder(MainActivity.this ).setTitle("删除").setMessage("确定删除这条记录吗?")
                        .setNegativeButton("取消",new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                            }
                        }).setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
       
可以使用快递100的API接口来实现快递单号查询。具体步骤如下: 1. 导入urllib库和json库: ```python import urllib.request import json ``` 2. 构造请求URL,其中需要替换`YOUR_APP_KEY`和`YOUR_EXPRESS_NO`为自己的应用密钥和快递单号: ```python url = 'https://api.kuaidi100.com/openapi/gateway.do?method=express.infoget&appkey=YOUR_APP_KEY&sign=&format=json&v=2.0&com=&num=YOUR_EXPRESS_NO&phone=' ``` 3. 发送请求并获取响应: ```python response = urllib.request.urlopen(url) result = response.read().decode('utf-8') ``` 4. 解析JSON格式的响应数据: ```python data = json.loads(result) ``` 5. 输出快递信息: ```python if data['status'] == '200': print('快递公司:' + data['data'][0]['com']) print('快递单号:' + data['data'][0]['nu']) print('物流信息:') for item in data['data'][0]['list']: print(item['time'] + ' ' + item['status']) else: print('查询失败,错误信息:' + data['message']) ``` 完整代码如下: ```python import urllib.request import json url = 'https://api.kuaidi100.com/openapi/gateway.do?method=express.infoget&appkey=YOUR_APP_KEY&sign=&format=json&v=2.0&com=&num=YOUR_EXPRESS_NO&phone=' response = urllib.request.urlopen(url) result = response.read().decode('utf-8') data = json.loads(result) if data['status'] == '200': print('快递公司:' + data['data'][0]['com']) print('快递单号:' + data['data'][0]['nu']) print('物流信息:') for item in data['data'][0]['list']: print(item['time'] + ' ' + item['status']) else: print('查询失败,错误信息:' + data['message']) ``` 注意:在使用快递100的API接口之前,需要先注册成为开发者并获取应用密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值