技术求助:将指定Curl命令转换为Python代码失败,请求协助
把Curl命令转换成Python Requests代码
没问题,我帮你把这段Curl命令转换成Python的Requests代码,应该能直接用:
首先,我们需要用到Python的requests库,如果还没安装的话,先执行这个命令安装:
pip install requests
然后是转换后的代码:
import requests # 请求URL url = "https://192.168.16.220:9000/api/views/search/messages" # 请求头信息 headers = { "X-Requested-By": "superman", "Content-Type": "application/json", "Accept": "text/csv" } # 基本认证信息 auth = ("admin", "admin") # 请求体数据 payload = { "streams": ["62948e1fcd664d57cccfa29c"], "query_string": { "type": "elasticsearch", "query_string": "source" }, "timerange": { "type": "relative", "range": 30 } } # 发送POST请求,忽略SSL证书验证(对应curl的-k参数) response = requests.post( url, headers=headers, auth=auth, json=payload, verify=False ) # 处理响应,因为Accept是text/csv,所以直接获取文本内容 if response.status_code == 200: print("请求成功,返回的CSV内容:") print(response.text) # 如果需要保存到文件,可以用下面的代码 # with open("output.csv", "w") as f: # f.write(response.text) else: print(f"请求失败,状态码:{response.status_code}") print("错误信息:", response.text)
一些注意事项:
verify=False对应curl的-k参数,用来忽略SSL证书验证,生产环境不建议使用,如果有合法的SSL证书,可以去掉这个参数。- 确保你的Python环境能访问到目标地址
192.168.16.220:9000,如果是内网地址,要保证网络连通性。 - 如果请求还是失败,可以检查:认证信息是否正确、请求体的参数是否和原curl一致、目标服务是否正常运行。
内容的提问来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

