前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python怎样执行curl命令_如何使用python执行curl命令

python怎样执行curl命令_如何使用python执行curl命令

作者头像
用户7886150
修改于 2023-09-24 08:42:07
修改于 2023-09-24 08:42:07
6.7K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 在PycURL和Python中使用cURL

如何使用python执行curl命令

 我想在python中执行curl命令。

 通常,我只需要在终端输入命令并按回车键。 但是,我不知道它在python中是如何工作的。

 该命令如下所示:

 curl -d @request.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere

 有一个request.json文件要发送以获得响应。

 我经常搜索并感到困惑。 我试着写一段代码,虽然我无法完全理解。 它没用。

 import pycurl

 import StringIO

 response = StringIO.StringIO()

 c = pycurl.Curl()

 c.setopt(c.URL, 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere')

 c.setopt(c.WRITEFUNCTION, response.write)

 c.setopt(c.HTTPHEADER, ['Content-Type: application/json','Accept-Charset: UTF-8'])

 c.setopt(c.POSTFIELDS, '@request.json')

 c.perform()

 c.close()

 print response.getvalue()

 response.close()

 错误信息是'Parse Error'。任何人都可以告诉我如何修复它? 或者如何正确地从服务器获得响应?

 Qiang Fu asked 2019-04-29T07:44:26Z

 7个解决方案

 106 votes

 为简单起见,您可以考虑使用标准库要求。

 json响应内容的示例如下:

 import requests

 r = requests.get('https://github.com/timeline.json')

 r.json()

 如果您要查找更多信息,请在“快速入门”部分中找到许多有用的示例。

 编辑:

 对于您的特定卷曲翻译:

 import requests

 url = 'https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere'

 payload = open("request.json")

 headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'}

 r = requests.post(url, data=payload, headers=headers)

 otorrillas answered 2019-04-29T07:44:58Z

 17 votes

 只需使用这个网站。 它会将任何curl命令转换为Python,Node.js,PHP,R或Go。

 例:

 curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/asdfasdfasdf

 在Python中成为现实,

 import requests

 headers = {

 'Content-type': 'application/json',

 }

 data = '{"text":"Hello, World!"}'

 response = requests.post('https://hooks.slack.com/services/asdfasdfasdf', headers=headers, data=data)

 Kyle Bridenstine answered 2019-04-29T07:45:31Z

 12 votes

 import requests

 url = "https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere"

 data = requests.get(url).json

 也许?

 如果您要发送文件

 files = {'request_file': open('request.json', 'rb')}

 r = requests.post(url, files=files)

 print r.text, print r.json

 啊,谢谢@LukasGraf现在我更好地理解他原来的代码在做什么

 import requests,json

 url = "https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere"

 my_json_data = json.load(open("request.json"))

 req = requests.post(url,data=my_json_data)

 print req.text

 print

 print req.json # maybe?

 Joran Beasley answered 2019-04-29T07:46:04Z

 11 votes

 curl -d @request.json --header "Content-Type: application/json" https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere

 它的python实现就像

 import requests

 headers = {

 'Content-Type': 'application/json',

 }

 params = (

 ('key', 'mykeyhere'),

 )

 data = open('request.json')

 response = requests.post('https://www.googleapis.com/qpxExpress/v1/trips/search', headers=headers, params=params, data=data)

 #NB. Original query string below. It seems impossible to parse and

 #reproduce query strings 100% accurately so the one below is given

 #in case the reproduced version is not "correct".

 # response = requests.post('https://www.googleapis.com/qpxExpress/v1/trips/search?key=mykeyhere', headers=headers, data=data)

 检查此链接,它将帮助将cURl命令转换为python,php和nodejs

 cryptoKTM answered 2019-04-29T07:46:35Z

 3 votes

 我的回答是WRT python 2.6.2。

 import commands

 status, output = commands.getstatusoutput("curl -H \"Content-Type:application/json\" -k -u (few other parameters required) -X GET https://example.org -s")

 print output

 我为没有提供必要的参数而道歉,因为它是保密的。

 apoorva_bhat answered 2019-04-29T07:47:06Z

 1 votes

 有一个很好的网站[https://curl.trillworks.com/]为您进行转换。 它确实从cURL转换为Python,Node.js,R,PHP,Go。

 Edgar Manukyan answered 2019-04-29T07:47:30Z

 -2 votes

 这可以通过下面提到的伪代码方法来实现

 导入os导入请求Data = os.execute(curl URL)R = Data.json()

 user9761315 answered 2019-04-29T07:48:01Z

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python调用REST API接口的几
相信做过自动化运维的同学都用过REST API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。
py3study
2020/01/06
4K0
python的HTTP请求方式(sock
DNS解析(浏) ->TCP连接(三次握手)->http Requests(浏)->Response(服) -> Parse(浏)-> Render(浏)->TCP断开(四次挥手)
py3study
2020/01/14
1.5K0
不容易啊!一次ssrf到rce挖掘
目标站点为他们的API实现了一个API控制台,使用此控制台发出的请求是从服务器端完成的。以下面的请求为例。
tnt阿信
2020/11/09
8670
不容易啊!一次ssrf到rce挖掘
python语音智能对话聊天机器人,linux&&树莓派双平台兼容
项目简介:运用百度语音进行声音转中文的识别与合成,智能对话使用图灵机器人,录音则,linux端用pythonaudio 模块.树莓派端因为pythonaudio不兼容问题,因此用arecord进行录音.最终代码约150行.代码发布在github上.https://github.com/luyishisi/python_yuyinduihua
十四君
2019/11/28
6K0
python requests
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。
forxtz
2022/05/10
1.7K0
树莓派 python 百度语音控制 gpio 控制开关灯
最初拿到树莓派的时候测试过,没成功,后来发现一张华丽丽的说明图,顿时醒悟了..记录下来,
十四君
2019/11/27
2K0
百度语音识别api使用python进行调用
百度语音现在是比较方便的接口,具体说明请看官方文档,本文分两个部分,先是使用python实现录音,然后再使用百度语音api进行识别上传。
十四君
2019/11/28
1.9K0
百度语音识别api使用python进行调用
【愚公系列】2023年06月 攻防世界-Web(ez_curl)
Express是一个流行的Node.js Web框架,它提供了许多有用的功能来构建Web应用程序。其中之一是参数解析,它允许开发者解析HTTP请求中的参数。Express提供了许多选项来配置参数解析。其中之一是parameterLimit选项。
愚公搬代码
2025/05/28
500
【愚公系列】2023年06月 攻防世界-Web(ez_curl)
Python(十三)
上篇,我们介绍了 Python 基础 HTTP 库 urllib 的基本使用,在使用上还是比较麻烦的,本篇,我们来看一下第三方 HTTP 库 Requests 是如何简化我们的操作的。
1ess
2021/11/01
3150
ASISCTF-firewalled复现
给了源码,我们得到一个docker-compose.yml包含两个服务的文件:flag-container 和 firewalled-curl。第二个通过 8000 端口暴露在公网上。它们都是基于apache 的flask应用。
pankas
2022/10/31
3790
ASISCTF-firewalled复现
[原创]Google SEO教程之Google Indexing API第一时间抓取新页面
1 Google SEO教程之Google Indexing API第一时间抓取新页面
极客中心
2021/01/21
3.3K0
[原创]Google SEO教程之Google Indexing API第一时间抓取新页面
Python钉钉报警及Zabbix集成钉钉报警
https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
iginkgo18
2020/09/27
1.5K0
Python钉钉报警及Zabbix集成钉钉报警
一个较为完整的PHP cURL封装方法-JT_curl
岳泽以
2024/09/01
2970
如何将 urllib2 升级至 pycurl
在 Python 中,urllib2 是一个用于处理 HTTP 请求的模块,但它在 Python 3 中被拆分成 urllib.request 和 urllib.error。相比之下,pycurl 提供了更高效的 HTTP 传输方式,因为它直接基于 libcurl,可以支持更多协议和更好的性能。因此,有时需要将 urllib2 的代码迁移到 pycurl。
华科云商小徐
2024/11/13
900
Pytest测试实战|Fixture详解
The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries. 这段话很好地阐述了Pytest的设计思想与强大的特性。之前详细地阐述了Pytest测试框架搜索规则、Pytest测试框架执行方式与Pytest测试框架参数化,本文章主要详细地阐述下Pytest测试框架中Fixture特性。
无涯WuYa
2024/04/23
1760
Pytest测试实战|Fixture详解
用Python请求接口的正确姿势是啥
您好,我是码农飞哥,感谢您阅读本文!本文主要介绍Python中如何请求外部接口以及如何通过Flask框架定义接口。
码农飞哥
2021/08/18
1K0
爬虫进阶(三)
总第69篇 01|背景介绍: 我们前面的几篇推文都是针对网页版的内容进行抓取,但是有的时候当我们想要的数据没有网页版只有APP端时,这个时候该怎么办呢?是人工去摘抄我们想要的数据吗?我们肯定不想这么做
张俊红
2018/04/11
9660
爬虫进阶(三)
OpenCTI威胁情报库部署
当所有容器都正常启动后,访问http://<ip>:8080 访问平台,登陆用户名和密码在你宿主机 docker-compose.yml所在目录下的.env文件中
曲奇小点点
2024/08/21
5610
OpenCTI威胁情报库部署
zabbix实现Python邮件报警
zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善。本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接。
py3study
2020/01/07
8360
Python—requests模块详解
Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。
forxtz
2020/10/10
3.1K0
相关推荐
Python调用REST API接口的几
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档