【问题解决】模拟发包过程中的Response 405/400问题

405可能造成的原因如下:

  • 接口不支持。比如需要使用post请求的地方使用了get,这个使用postman就可以看出来,会提示 Method \"GET\" not allowed
  • url问题。在抓取的包中往往有这么几个url,一个是HOST,主机没什么好说的,然后url应该就是这个【主机名+路径】。往往像一些软件,库函数等都可以根据url自动提取hearder中的host,看好位置再复制即可。此外,还有两个其它url,一个是Origin Header ,存在于请求中,用于指明当前请求来自于哪个站点,很多站点需要校验,需要注意这个字段仅包含站点,而非路径。referer表示你是从哪个网页来到这个网页的,这个字段一半不会进行校验,而是用于数据统计。

400可能造成的原因:

  • header问题
  • json问题:先检查一下json格式是否可解析,很多时候抓包软件为了方便把所有的大小写统一成了小写,就会出现false无法解析这种情况,需要改成程序可以理解的False,诸如此类。另外一个比较难注意的点是,【究竟发的是json文本还是json对象】,一般有这三种形式:
    • params形式:这种只有在一些比较老旧的网页中会见到,即路径中自带了参数
    • form-data形式:也就是最常见的,当指定内容类型为application/json时,往往可以直接通过form-data的body形式发送。代码如下:
        logData = {
        'account_name': account_name,
        'user_pwd': user_pwd,
        'remember_me': 'Y'
         }
        logRES = session.post(logURL, headers=logHeader, data=logData)
    
    • json对象形式:这种形式的data好像无法使用postman发送(存疑,我没有找到),而且很难发现问题。其实就是需要把上面的封装成一个对象,代码如下:
    logRES = session.post(logURL, headers=logHeader, data=json.dumps(logData))
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值