zoukankan      html  css  js  c++  java
  • 用Wireshark抓包分析请求

    前言

    有些封装好的API把错误都屏蔽掉,直接返回某一个不明确的具体错误,让人感到困惑。

    //code in SDK read-only
    public static Data requestHandler(result) throws ApiException{
            try{
                resultEntity = JSONObject.parseObject(result);
            }catch (Exception e){
                throw new ApiException(SysEnums.SYS_ERR);
            }
            if(resultEntity == null || resultEntity .get("data") == null){
                throw new ApiException(SysEnums.SYS_ERR);
            }
    }
    public static Data someAPI(methodName,params) ApiException{
        return requestHandler(getURLPATH(methodName),params);
    }
    
    //Implements
    try{
            result = someAPI(apiName,params);
        }catch(ApiException e){
            //You will get no detailed error message but only the error code SysEnums.SYS_ERR
        }

    闲的没事抓个包看看什么原因

    parseObject 如果传递的参数不是JSON字符串,那么很有可能该接口返回了一个XML/HTML

    就要看看这个究竟是什么。

    好处:
    1. 分析是调用方的错误,还是API提供方的错误
    2. 错误具体原因如果是API提供方的,可以把返回信息反馈给API提供方,并且放心地进行重试。
    3. 错误具体原因如果是API调用方的,可以帮助诊断程序错误。

    抓包方法

    下载Wireshark并安装

    如图1-1所示:
    wireshark过滤器
    图 1-1 使用过滤器

    点击过滤器表达式右侧的 + 然后就可以将过滤器表达式保存下来。
    还可以点击左侧 过滤器表达式首选项 可以添加多个过滤器。

    例如可以抓目标主机为 blog.csdn.net

    http.host contains "blog.csdn.net"

    抓到的包如下图1-2所示:
    wireshark抓包分析
    图 1-2 抓包分析

    这样选择任意一个HTTP请求,追踪流->HTTP流,然后就可以看该HTTP请求下的每次TCP的请求过程。可以清楚的看到返回的数据,如图1-3所示。

    追踪HTTP流
    图 1-3 追踪HTTP流

    wireshark实用的过滤器表达式

    #抓HTTP的请求
    tcp.port == 80 || udp.port == 80
    #抓某出站请求路径
    http.host == "domain.com" and http.request.uri contains "/url/path"
    #只抓请求返回
    ip.src_host contains "realdomain.com" and http

    第一个表达式抓到的HTTP请求非常多,没什么用处
    第二个表达式可以抓到本地发送的HTTP请求,并且只关注某个path
    第三个表达式可以抓到某API返回的给本机的信息,并且是HTTP层的

    注: “realdomain.com”是第二个表达式追踪流查到的目标主机真实的域名

    以上。

  • 相关阅读:
    判断一个对象是否为空
    viewflipper的高度设置
    Android利用ViewFlipper实现屏幕切换动画效果
    锁屏状态下点亮屏幕,并弹出闹钟提示信息
    android如何取消闹铃
    luogu P1880(区间dp)
    luogu P2014 选课(树形dp)
    luogu P1122(树形dp)
    luogu P1352 (树形dp)
    luogu P1541 (dp)
  • 原文地址:https://www.cnblogs.com/slankka/p/9158506.html
Copyright © 2011-2022 走看看