1 cURL简介

cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。

cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

curl还支持SSL认证、HTTP POST、HTTP PUT、FTP上传, HTTP form based upload、proxies、HTTP/2、cookies、用户名+密码认证(Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos)、file transfer resume、proxy tunneling。

linux和window10可以直接使用curl,window10 以下可以到https://curl.haxx.se/windows/ 下载安装

2 linux centos下请求

3 window10 cmd下请求

注意,默认情况下cmd的字符集为gbk,如果上述命令乱码,请调整为utf-8:

1、打开CMD.exe命令行窗口

2、通过 chcp命令改变代码页,UTF-8的代码页为65001

  chcp 65001

执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。

3、修改窗口属性,改变字体

在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。

4. curl命令使用(以linux为例)

抓取网页

curl http://www.baidu.com 

curl使用http代理抓取页面

curl -x 111.95.243.36:80 http://www.baidu.com 

使用socks代理抓取页面:

curl --socks5 202.113.65.229:443 http://www.baidu.com 

接收cookies:

curl -c /tmp/cookies http://www.baidu.com #cookies保存到/tmp/cookies文件

发送cookies

curl -b "key1=val1;key2=val2;" http://www.baidu.com #发送cookies文本curl -b /tmp/cookies http://www.baidu.com #从文件中读取cookies

返回完整http报文

curl -v "http://localhost:8080/xxxxxx/alive.jsp" 返回完整的报文:

curl post方式提交数据

curl -d "name=value&name2=value2" http://www.baidu.com #post数据curl -d a=b&c=d&txt@/tmp/txt http://www.baidu.com #post文件

curl请求模拟post发送json

curl -X POST --header "Content-Type:application/json" --data '{"name":"sss","idNumber":"1111","appkey":"appkeytest22131313131321","isTesting":"0","isMock":"1"}' http://192.168.1.11:8080/api

设置http请求头信息:

curl -A "Mozilla/5.0 Firefox/21.0" http://www.baidu.com #设置http请求头User-Agentcurl -e "http://pachong.org/" http://www.baidu.com #设置http请求头Referer

设置http响应头处理:

curl -I http://www.baidu.com #仅仅返回header

当有存在多个参数使用&连接时http请求地址的url要使用""括起来,否则可能会出错。

附录

curl -h

Usage: curl [options...] <url>

Options: (H) means HTTP/HTTPS only, (F) means FTP only

--anyauth Pick "any" authentication method (H)

-a, --append Append to target file when uploading (F/SFTP)

--basic Use HTTP Basic Authentication (H)

--cacert FILE CA certificate to verify peer against (SSL)

--capath DIR CA directory to verify peer against (SSL)

-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)

--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)

--ciphers LIST SSL ciphers to use (SSL)

--compressed Request compressed response (using deflate or gzip)

-K, --config FILE Specify which config file to read

--connect-timeout SECONDS Maximum time allowed for connection

-C, --continue-at OFFSET Resumed transfer offset

-b, --cookie STRING/FILE String or file to read cookies from (H)

-c, --cookie-jar FILE Write cookies to this file after operation (H)

--create-dirs Create necessary local directory hierarchy

--crlf Convert LF to CRLF in upload

--crlfile FILE Get a CRL list in PEM format from the given file

-d, --data DATA HTTP POST data (H)

--data-ascii DATA HTTP POST ASCII data (H)

--data-binary DATA HTTP POST binary data (H)

--data-urlencode DATA HTTP POST data url encoded (H)

--delegation STRING GSS-API delegation permission

--digest Use HTTP Digest Authentication (H)

--disable-eprt Inhibit using EPRT or LPRT (F)

--disable-epsv Inhibit using EPSV (F)

-D, --dump-header FILE Write the headers to this file

--egd-file FILE EGD socket path for random data (SSL)

--engine ENGINGE Crypto engine (SSL). "--engine list" for list

-f, --fail Fail silently (no output at all) on HTTP errors (H)

-F, --form CONTENT Specify HTTP multipart POST data (H)

--form-string STRING Specify HTTP multipart POST data (H)

--ftp-account DATA Account data string (F)

--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)

--ftp-create-dirs Create the remote dirs if not present (F)

--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)

--ftp-pasv Use PASV/EPSV instead of PORT (F)

-P, --ftp-port ADR Use PORT with given address instead of PASV (F)

--ftp-skip-pasv-ip Skip the IP address for PASV (F)

--ftp-pret Send PRET before PASV (for drftpd) (F)

--ftp-ssl-ccc Send CCC after authenticating (F)

--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)

--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)

-G, --get Send the -d data with a HTTP GET (H)

-g, --globoff Disable URL sequences and ranges using {} and []

-H, --header LINE Custom header to pass to server (H)

-I, --head Show document info only

-h, --help This help text

--hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)

-0, --http1.0 Use HTTP 1.0 (H)

--ignore-content-length Ignore the HTTP Content-Length header

-i, --include Include protocol headers in the output (H/F)

-k, --insecure Allow connections to SSL sites without certs (H)

--interface INTERFACE Specify network interface/address to use

-4, --ipv4 Resolve name to IPv4 address

-6, --ipv6 Resolve name to IPv6 address

-j, --junk-session-cookies Ignore session cookies read from file (H)

--keepalive-time SECONDS Interval between keepalive probes

--key KEY Private key file name (SSL/SSH)

--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)

--krb LEVEL Enable Kerberos with specified security level (F)

--libcurl FILE Dump libcurl equivalent code of this command line

--limit-rate RATE Limit transfer speed to this rate

-l, --list-only List only names of an FTP directory (F)

--local-port RANGE Force use of these local port numbers

-L, --location Follow redirects (H)

--location-trusted like --location and send auth to other hosts (H)

-M, --manual Display the full manual

--mail-from FROM Mail from this address

--mail-rcpt TO Mail to this receiver(s)

--mail-auth AUTH Originator address of the original email

--max-filesize BYTES Maximum file size to download (H/F)

--max-redirs NUM Maximum number of redirects allowed (H)

-m, --max-time SECONDS Maximum time allowed for the transfer

--metalink Process given URLs as metalink XML file

--negotiate Use HTTP Negotiate Authentication (H)

-n, --netrc Must read .netrc for user name and password

--netrc-optional Use either .netrc or URL; overrides -n

--netrc-file FILE Set up the netrc filename to use

-N, --no-buffer Disable buffering of the output stream

--no-keepalive Disable keepalive use on the connection

--no-sessionid Disable SSL session-ID reusing (SSL)

--noproxy List of hosts which do not use proxy

--ntlm Use HTTP NTLM authentication (H)

-o, --output FILE Write output to <file> instead of stdout

--pass PASS Pass phrase for the private key (SSL/SSH)

--post301 Do not switch to GET after following a 301 redirect (H)

--post302 Do not switch to GET after following a 302 redirect (H)

--post303 Do not switch to GET after following a 303 redirect (H)

-#, --progress-bar Display transfer progress as a progress bar

--proto PROTOCOLS Enable/disable specified protocols

--proto-redir PROTOCOLS Enable/disable specified protocols on redirect

-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port

--proxy-anyauth Pick "any" proxy authentication method (H)

--proxy-basic Use Basic authentication on the proxy (H)

--proxy-digest Use Digest authentication on the proxy (H)

--proxy-negotiate Use Negotiate authentication on the proxy (H)

--proxy-ntlm Use NTLM authentication on the proxy (H)

-U, --proxy-user USER[:PASSWORD] Proxy user and password

--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port

-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)

--pubkey KEY Public key file name (SSH)

-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)

--random-file FILE File for reading random data from (SSL)

-r, --range RANGE Retrieve only the bytes within a range

--raw Do HTTP "raw", without any transfer decoding (H)

-e, --referer Referer URL (H)

-J, --remote-header-name Use the header-provided filename (H)

-O, --remote-name Write output to a file named as the remote file

--remote-name-all Use the remote file name for all URLs

-R, --remote-time Set the remote file's time on the local output

-X, --request COMMAND Specify request command to use

--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS

--retry NUM Retry request NUM times if transient problems occur

--retry-delay SECONDS When retrying, wait this many seconds between each

--retry-max-time SECONDS Retry only within this period

-S, --show-error Show error. With -s, make curl show errors when they occur

-s, --silent Silent mode. Don't output anything

--socks4 HOST[:PORT] SOCKS4 proxy on given host + port

--socks4a HOST[:PORT] SOCKS4a proxy on given host + port

--socks5 HOST[:PORT] SOCKS5 proxy on given host + port

--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy

--socks5-gssapi-service NAME SOCKS5 proxy service name for gssapi

--socks5-gssapi-nec Compatibility with NEC SOCKS5 server

-Y, --speed-limit RATE Stop transfers below speed-limit for 'speed-time' secs

-y, --speed-time SECONDS Time for trig speed-limit abort. Defaults to 30

--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)

--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)

-2, --sslv2 Use SSLv2 (SSL)

-3, --sslv3 Use SSLv3 (SSL)

--ssl-allow-beast Allow security flaw to improve interop (SSL)

--stderr FILE Where to redirect stderr. - means stdout

--tcp-nodelay Use the TCP_NODELAY option

-t, --telnet-option OPT=VAL Set telnet option

--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)

-z, --time-cond TIME Transfer based on a time condition

-1, --tlsv1 Use => TLSv1 (SSL)

--tlsv1.0 Use TLSv1.0 (SSL)

--tlsv1.1 Use TLSv1.1 (SSL)

--tlsv1.2 Use TLSv1.2 (SSL)

--trace FILE Write a debug trace to the given file

--trace-ascii FILE Like --trace but without the hex output

--trace-time Add time stamps to trace/verbose output

--tr-encoding Request compressed transfer encoding (H)

-T, --upload-file FILE Transfer FILE to destination

--url URL URL to work with

-B, --use-ascii Use ASCII/text transfer

-u, --user USER[:PASSWORD] Server user and password

--tlsuser USER TLS username

--tlspassword STRING TLS password

--tlsauthtype STRING TLS authentication type (default SRP)

--unix-socket FILE Connect through this UNIX domain socket

-A, --user-agent STRING User-Agent to send to server (H)

-v, --verbose Make the operation more talkative

-V, --version Show version number and quit

-w, --write-out FORMAT What to output after completion

--xattr Store metadata in extended file attributes

-q If used as the first parameter disables .curlrc

参考资料

【1】https://baike.baidu.com/item/curl/10098606?fr=aladdin

【2】https://www.cnblogs.com/gangtiexia/articles/4591032.html

【3】http://www.aiezu.com/system/linux/linux_curl_syntax.html

转载于:https://www.cnblogs.com/davidwang456/p/11376387.html

调试应用不发愁,免安装的 curl 来帮忙相关推荐

  1. linux免安装nginx,Nginx免安装包制作工具:Nginx-portable

    最近在捣鼓离线版Nginx,本来打算制作成rpm包,可惜技术不到位,只能改变思路,把Nginx编译成免安装的二进制包,类似于Tomcat,直接去start就能使用,所以找到了nginx-portabl ...

  2. 如何免安装服务器将 React 整合进 Spring Boot

    如何免安装服务器将 React 整合进 Spring Boot 下载 Spring Boot 官方 demo 下载 React 官方 demo 开始整合 使用 Spring MVC 控制器导向 Rea ...

  3. 准备你的应用(Android免安装应用)

    最好的免安装应用体验专注于帮助用户快速完成任务(例如观看视频或进行购买).您可以开始使用此应用程序列表来准备Android免安装应用.这里的许多考虑被认为是Android应用程序的最佳做法. 从你的应 ...

  4. Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库]

    Visual Studio如何实现.exe免安装免DLL运行[动态链接库--->>>静态链接库] 前言 一. 什么是程序库? 1. 静态库: 2. 动态库: 3. 两者区别: 二. ...

  5. 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第一篇)安装调试

    基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第一篇)安装调试 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大 ...

  6. python识别文字免安装_免安装方式的Python之VSCode环境配置

    概述 本文旨在介绍免安装方式,在VSCode中搭建Python(3.73)的配置环境.至于Python是什么.它能做些什么,诸如此类的介绍均不在此文中介绍,相信能看此文的人,多多少少都会有些了解. V ...

  7. 试图运行项目时出错,无法启动调试。没有正确安装调试器,请运行安装程序安装或恢复调试器。...

            用Visual Studio.net 2003调试项目时,出现错误对话框,显示如下:         试图运行项目时出错,无法启动调试.没有正确安装调试器,请运行安装程序安装或恢复调试 ...

  8. 免安装的mysql删除_MySQL5.7 免安装版配置及删除图文教程

    软件下载 操作步骤 1.解压下载免安装zip文件 2.解压到自己想要安装到的目录,本人解压到的是D:\Program Files(考虑到解压后文件名很长所以我从命名了) 3.添加环境变量 我的电脑-& ...

  9. MySQLMySql免安装版安装配置

    MySql免安装版安装配置,附MySQL服务无法启动解决方案 mysql 5.6.17 绿色版(免安装)安装配置教程 1 [mysql] 2 # 设置mysql客户端默认字符集 3 default-c ...

最新文章

  1. java script console_JS调试之console.log()作用与用法
  2. python把英语句子成分字母_英语句子成分-谓语讲解 什么是谓语?(
  3. excel报表服务器作用,Excel各种图表的应用范围及用途介绍
  4. python词云的简单使用
  5. 轴固定位置_全面总结:轴零件固定方式及特点
  6. SVN使用教程总结[转]
  7. 机器学习、数据挖掘之中国大牛
  8. 如何设计软件类招聘考题
  9. 操作系统(一)—— 操作系统概论
  10. MyEclipse10破解 运行run.bat闪退
  11. 笔记本内置键盘的外接改造(上篇)
  12. ASP.NET农历时间显示(两)
  13. Git版本管理工具使用知识汇总
  14. 文献阅读笔记:Unsupervised Machine Translation Using Monolingual Corpora Only
  15. linux p4 命令行,linux下的p4用法
  16. [Android实例] ViewPager多页面滑动切换以及动画效果(精)
  17. Muse UI — 基于 Vue2.0 的 Material Design UI 库
  18. 选择靠谱的刷脸支付公司追风赶潮
  19. WPF 控件专题 ListBox 控件详解
  20. EditText显示QQ聊天表情

热门文章

  1. java十进制输出_JAVA输入一个十进制数N,输出r进制的数
  2. python正态检验_Python怎么检验数据的正态分布
  3. java面试题 并发_Java 并发面试题(一)
  4. pythonsuper_用__init __()方法理解Python super()
  5. python,制作山东省的地图 热力图
  6. python根据列表形成字典。
  7. c语言如何使四种运算符同级,二 如何学习C语言的运算符和运算顺序
  8. 表格布局(tablelayout)
  9. 字典树实现_反怼面试官系列之 字典树
  10. cuda 编 程(六)简单CUDA程序的基本框架