Bootstrap

不打开postman或者其他可执行终端也能执行从浏览器拷贝的命令copy as cURl(bash)命令

在前端测试某个功能的时候,若某个接口报了error,想看看日志或者debug代码的话,如果刷新一下界面那成功的接口也会再次请求,后端日志也是一大堆,无关的请求也会跑到断点上来,那么我们想单独再执行一下怎么办呢?第一种:右键该接口,再点击Replay XHR即可单独请求该接口,这种方式有个缺点:只支持XHR这种请求,Fetch的不能支持(想不通,百思不得其解,未去深究,有知道原因的大神请告知)

 所以官方不支持怎么办呢,Chrome提供了多种方式将该请求的命令拷贝出来,如果要拷贝出来在postman中执行,点击copy as cURL(bash),然后将该命令粘贴在postman中执行,但是我并不想打开postman

吐槽postman缺点:

1.需要联网登录账号,没有网?对不起,就算你保存到本地的请求都无法打开

2.隔三差五都在更新,每次打开基本上都有弹框提示更新,还无法关闭更新,好不容易适应的操作又要被迫改变,讨厌啊~~~

3.除了以上两点缺点,postman还是一款不错的工具,所以没有完美的软件,只有你更看中的东西能遮盖它的"缺点"

so,作为一名程序员,我自己写工具,将curl命令执行了不就ok了吗?

安装requests命令:

pip install requests

import requests, json


#变量f表示从浏览器拷贝的curl命令,注意只能是copy as curl(bash)这种方式

f = '''
  curl 'https://example.url.cloud' \
  -H 'Connection: keep-alive' \
  -H 'authorization: Bearer your token' \
  -H 'accept-language: zh' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36' \
  -H 'clientVersion: webapp' \
  -H 'content-type: application/json' \
  -H 'Accept: */*' \
  --data-raw '["ca2d43d4-b008-4741-aba2-73cece647a97","50bf9d1d-fcb8-4b7f-81d6-3bf93ab268fb"]' \
  --compressed \
  --insecure
  '''


url = ''
headers = {}
data = {}
for i in f.split('   '):
    if i.__contains__('-H '):
        h = i.replace("'", "").replace("-H ", "").replace("\n", "").split(": ")
        headers.update({h[0]: h[1]})
    elif i.__contains__('curl '):
        url = i.replace("'", "").replace("\n", "").split("curl ")[1]
    elif i.__contains__('--data-raw '):
        data = eval(i.replace("'", "").replace("\n", "").split("--data-raw ")[1])


if len(data)!=0:
    r = requests.post(url, headers=headers, data=json.dumps(data))
    if r.status_code != 200:
        print('请求失败:\n' + r.text)
    else:
        print(r.text)
else:
    r = requests.get(url, headers=headers)
    if r.status_code != 200:
        print('请求失败:\n' + r.text)
    else:
        obj = json.loads(r.text)
        print(json.dumps(obj, indent=4))
        # print(r.text)

;