将 CURL 语法转换为原生 Python、Go、PHP、JavaScript、R、Elixir 和 Dart HTTP 代码
安装
$ npm install --save curlconverter
用法
var curlconverter = require ( 'curlconverter' ) ;
卷曲转换器。到Python (centralnotice_buckets_by_campaign =%7B%22C14_enUS_dsk_lw_FR%22%3A%7B%22val%22%3A%220%22%2C%22start%22%3A1412172000%2C%22end%22%3A1422576000%7D%2C%22C14_en5C_dec_dsk_FR%22%3A%7B %22val%22%3A3%2C%22start%22%3A1417514400%2C%22end%22%3A1425290400%7D%2C%22C14_en5C_bkup_dsk_FR%22%3A%7B%23%20%20%20%20%C%20%20%20%20%20%20%C%20%20%20%20%C %22end%22%3A1425290400%7D%7D;centralnotice_bannercount_fr12=22;centralnotice_bannercount_fr12-wait=14' -H 'Connection: keep-alive' --compressed") ;
返回一串 Python 代码,如:
进口 请求
cookie = {
'GeoIP':'US:Albuquerque:35.1241:-106.7675:v4',
'uls-previous-languages':'%5B%22en%22%5D',
'mediaWiki.user.sessionId':'VaHaeVzvx3kvcyv3kv3k ,
'centralnotice_buckets_by_campaign' : '%7B%22C14_enUS_dsk_lw_FR%22%3A%7B%22val%22%3A%220%22%2C%22start%22%3A1412172000%2C%20%2000%2C%20%2000%2C%20000%2C%20%2D1C_120%2C%2C%2D2C_120%2C%2D2C_120%2C_120%C_120%C_20%2C%20%2C%2C%20%2C_120%C_120%20%C%20%20%C%20%20%C%D %3A%7B%22val%22%3A3%2C%22start%22%3A1417514400%2C%22end%22%3A1425290400%7D%2C%22C14_en5C_bkup_dsk_FR%22%3%A%22%22%A%22%C %3A1417428000%2C%22end%22%3A1425290400%7D%7D' ,
'centralnotice_bannercount_fr12' :'22',
'centralnotice_bannercount_fr12-wait':'14',
}
headers = {
'Accept-Encoding' : 'gzip, deflate, sdch' ,
'Accept-Language' : 'en-US,en;q=0.8' ,
'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' ,
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, */*;q=0.8' ,
'Referer' : 'http://www.wikipedia.org/' ,
'Connection' : 'keep-alive' ,
}
响应 = 请求。get ( 'http://en.wikipedia.org/' , headers = headers , cookies = cookies )
贡献
我宁愿编写程序来编写程序而不是编写程序。
Dick Sites,数字设备公司,1985 年 9 月
确保您正在运行节点 12 或更高版本。测试套件将在旧版本的节点上失败。
如果添加新生成器,请确保更新cli.js中支持的语言列表,否则将无法从命令行访问。此外,您需要为新生成器更新 test.js 和 index.js,使其成为测试的一部分。
如果要添加新功能,请从测试开始。
- 创建一个包含 curl 命令的文件,
fixtures/curl_commands
并使用描述性文件名,例如post_with_headers.txt
fixtures/python_output/
使用匹配的文件名(但不同的扩展名)创建一个包含输出的文件,例如post_with_headers.py
- 使用
npm test
. - 如果您的文件名正确匹配,您应该会看到一个失败的测试。通过修改解析器
util.js
或生成器来修复它generators/
解析器生成代码生成器函数使用的通用数据结构。
您可以使用以下命令运行特定测试:
node test.js --test=test_name
其中“test_name”是一个文件(没有扩展名) fixtures/curl_commands
您可以使用以下命令运行特定测试:
node test.js --language=R
我建议使用调试器设置它,以便您可以准确地看到解析器传递给生成器的内容。这是我的单个测试的 Intellij 运行配置:
在提交 PR 之前,请检查您的 JS 代码是否符合standardjs强制执行的代码风格。如果没有,请使用以下内容修复您的代码:
$ 标准 --fix my_file.js
如果您遇到困难,请通过电子邮件与我们联系。我总是愿意参加谷歌环聊和结对计划。
贡献者
- jeayu(Java 支持)
- Muhammad Reza Irvanda(python 环境变量)
- Weslen Nascimento(节点获取)
- Roman Druzki(积压清理,解析改进)
- NoahCardoza(命令行界面)
- ssi-anik(JSON 支持)
- hrbrmstr (R 支持)
- daniellockard (Go 支持)
- eliask(改进python输出)
- trdarr(开发运营和代码风格)
- nashe(修复 PHP 输出)
- bfontaine(减少测试套件中的代码重复)
- 海狗007
- 尼克蒂姆科
- 温卡尔特
- nico202
- r3m0t
- csells (Dart 支持)
- yanshiyason (Elixir 支持)
- Robertof(Rust 增强,正确性,es6)
- clintonc(代码质量/简洁性,测试套件一致性)
- MarkReeder(JSON 格式)
- cf512(错误修正和功能请求)
- DainisGorbunovs(MATLAB 支持)
- TennyZhuang(原始数据支持).
原文地址:https://github.com/NickCarneiro/curlconverter;如有侵权,联系删除。
链接地址:堆栈导航——CURL转换
版权声明:itnav123 发表于 2021-09-09 22:32:10。
转载请注明:CURL 语法转换为原生 Python、Go、PHP、JavaScript、R、Elixir 和 Dart HTTP 代码 | 堆栈导航
转载请注明:CURL 语法转换为原生 Python、Go、PHP、JavaScript、R、Elixir 和 Dart HTTP 代码 | 堆栈导航