首页 > 解决方案 > 如何使用 bash 脚本而不是 python 发送此请求?

问题描述

import json
import requests


def query_records():
    args = {
        "table_name": "instance_group",
        "filter_list": [
            [
                {
                    "field": "account",
                    "op": "SCmp",
                    "value": "finder-others-live_group_file"
                }
            ]
        ],
        "order_field": "id",
        "start": 0,
        "length": 500,
        "order_inc": True
    }
    url = "http://misc.yard.wx.com:80/api/v1.0/query_records"
    resp = requests.post(url, data=json.dumps(args))
    print resp
    print resp.content

        
if __name__ == "__main__":
    # url = "http://misc.yard.wx.com:80/api/v1.0/query_records"
    query_records()

这是一个用于发送 post 请求的 python 文件,但现在我需要使用 bash 脚本来发送这个请求。然后我使用 py2curl 包将请求转换为 curl 命令。

curl -v -X POST -H "Accept: */*" -H "Accept-Encoding: gzip, deflate" -H "Connection: keep-alive" -H "Content-Length: 196" -H "User-Agent: python-requests/2.25.1" -d "{\"table_name\": \"instance_group\", \"filter_list\": [[{\"field\": \"account\", \"op\": \"SCmp\", \"value\": \"finder-others-live_group_file\"}]], \"order_field\": \"id\", \"start\": 0, "length": 500, \"order_inc\": true}" http://misc.yard.wx.com:80/api/v1.0/query_recordsop/

但是当我执行python文件的时候,可以收到响应,但是执行这个curl命令时没有响应。为什么?我该怎么办?

标签: pythonbash

解决方案


您可以使用 curl 文档中的以下参数,

https://curl.se/docs/manpage.html#--trace

-S, --show-error

您还可以使用以下参数,

-v, --verbose

在操作期间使 curl 冗长。对于调试和查看“幕后”发生的事情很有用。

要获得更多输出,您可以使用

--trace <file>

启用对给定输出文件的所有传入和传出数据(包括描述性信息)的完整跟踪转储。使用“-”作为文件名将输出发送到标准输出。使用“%”作为文件名将输出发送到 stderr。


推荐阅读