curl调用接口方法

冷不防 2022-09-02 08:39 484阅读 0赞

通过curl -h我们可以获取到所有curl的命令以及其用法描述。

  1. Usage: curl [options...] <url>
  2. Options: (H) means HTTP/HTTPS only, (F) means FTP only
  3. --anyauth Pick "any" authentication method (H) 可以使用“任何”身份验证方法
  4. -a, --append Append to target file when uploading (F/SFTP) 上传文件时,附加到目标文件
  5. --basic Use HTTP Basic Authentication (H) 使用HTTP基本验证
  6. --cacert FILE CA certificate to verify peer against (SSL)
  7. --capath DIR CA directory to verify peer against (SSL)
  8. -E, --cert CERT[:PASSWD] Client certificate file and password (SSL)
  9. --cert-status Verify the status of the server certificate (SSL)
  10. --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)
  11. --ciphers LIST SSL ciphers to use (SSL)
  12. --compressed Request compressed response (using deflate or gzip)
  13. -K, --config FILE Read config from FILE
  14. --connect-timeout SECONDS Maximum time allowed for connection
  15. --connect-to HOST1:PORT1:HOST2:PORT2 Connect to host (network level)
  16. -C, --continue-at OFFSET Resumed transfer OFFSET
  17. -b, --cookie STRING/FILE Read cookies from STRING/FILE (H)
  18. -c, --cookie-jar FILE Write cookies to FILE after operation (H)
  19. --create-dirs Create necessary local directory hierarchy
  20. --crlf Convert LF to CRLF in upload
  21. --crlfile FILE Get a CRL list in PEM format from the given file
  22. -d, --data DATA HTTP POST data (H) HTTP POST方式传送数据
  23. --data-raw DATA HTTP POST data, '@' allowed (H)
  24. --data-ascii DATA HTTP POST ASCII data (H)
  25. --data-binary DATA HTTP POST binary data (H)
  26. --data-urlencode DATA HTTP POST data url encoded (H)
  27. --delegation STRING GSS-API delegation permission
  28. --digest Use HTTP Digest Authentication (H)
  29. --disable-eprt Inhibit using EPRT or LPRT (F)
  30. --disable-epsv Inhibit using EPSV (F)
  31. --dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2
  32. --dns-interface Interface to use for DNS requests
  33. --dns-ipv4-addr IPv4 address to use for DNS requests, dot notation
  34. --dns-ipv6-addr IPv6 address to use for DNS requests, dot notation
  35. -D, --dump-header FILE Write the received headers to FILE
  36. --egd-file FILE EGD socket path for random data (SSL)
  37. --engine ENGINE Crypto engine (use "--engine list" for list) (SSL)
  38. --expect100-timeout SECONDS How long to wait for 100-continue (H)
  39. -f, --fail Fail silently (no output at all) on HTTP errors (H)
  40. --fail-early Fail on first transfer error, do not continue
  41. --false-start Enable TLS False Start.
  42. -F, --form CONTENT Specify HTTP multipart POST data (H)
  43. --form-string STRING Specify HTTP multipart POST data (H)
  44. --ftp-account DATA Account data string (F)
  45. --ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)
  46. --ftp-create-dirs Create the remote dirs if not present (F)
  47. --ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)
  48. --ftp-pasv Use PASV/EPSV instead of PORT (F)
  49. -P, --ftp-port ADR Use PORT with given address instead of PASV (F)
  50. --ftp-skip-pasv-ip Skip the IP address for PASV (F)
  51. --ftp-pret Send PRET before PASV (for drftpd) (F)
  52. --ftp-ssl-ccc Send CCC after authenticating (F)
  53. --ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)
  54. --ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer (F)
  55. -G, --get Send the -d data with a HTTP GET (H)
  56. -g, --globoff Disable URL sequences and ranges using {} and []
  57. -H, --header LINE Pass custom header LINE to server (H)
  58. -I, --head Show document info only
  59. -h, --help This help text
  60. --hostpubmd5 MD5 Hex-encoded MD5 string of the host public key. (SSH)
  61. -0, --http1.0 Use HTTP 1.0 (H)
  62. --http1.1 Use HTTP 1.1 (H)
  63. --http2 Use HTTP 2 (H)
  64. --http2-prior-knowledge Use HTTP 2 without HTTP/1.1 Upgrade (H)
  65. --ignore-content-length Ignore the HTTP Content-Length header
  66. -i, --include Include protocol headers in the output (H/F)
  67. -k, --insecure Allow connections to SSL sites without certs (H)
  68. --interface INTERFACE Use network INTERFACE (or address)
  69. -4, --ipv4 Resolve name to IPv4 address
  70. -6, --ipv6 Resolve name to IPv6 address
  71. -j, --junk-session-cookies Ignore session cookies read from file (H)
  72. --keepalive-time SECONDS Wait SECONDS between keepalive probes
  73. --key KEY Private key file name (SSL/SSH)
  74. --key-type TYPE Private key file type (DER/PEM/ENG) (SSL)
  75. --krb LEVEL Enable Kerberos with security LEVEL (F)
  76. --libcurl FILE Dump libcurl equivalent code of this command line
  77. --limit-rate RATE Limit transfer speed to RATE
  78. -l, --list-only List only mode (F/POP3)
  79. --local-port RANGE Force use of RANGE for local port numbers
  80. -L, --location Follow redirects (H)
  81. --location-trusted Like '--location', and send auth to other hosts (H)
  82. --login-options OPTIONS Server login options (IMAP, POP3, SMTP)
  83. -M, --manual Display the full manual
  84. --mail-from FROM Mail from this address (SMTP)
  85. --mail-rcpt TO Mail to this/these addresses (SMTP)
  86. --mail-auth AUTH Originator address of the original email (SMTP)
  87. --max-filesize BYTES Maximum file size to download (H/F)
  88. --max-redirs NUM Maximum number of redirects allowed (H)
  89. -m, --max-time SECONDS Maximum time allowed for the transfer
  90. --metalink Process given URLs as metalink XML file
  91. --negotiate Use HTTP Negotiate (SPNEGO) authentication (H)
  92. -n, --netrc Must read .netrc for user name and password
  93. --netrc-optional Use either .netrc or URL; overrides -n
  94. --netrc-file FILE Specify FILE for netrc
  95. -:, --next Allows the following URL to use a separate set of options
  96. --no-alpn Disable the ALPN TLS extension (H)
  97. -N, --no-buffer Disable buffering of the output stream
  98. --no-keepalive Disable keepalive use on the connection
  99. --no-npn Disable the NPN TLS extension (H)
  100. --no-sessionid Disable SSL session-ID reusing (SSL)
  101. --noproxy List of hosts which do not use proxy
  102. --ntlm Use HTTP NTLM authentication (H)
  103. --ntlm-wb Use HTTP NTLM authentication with winbind (H)
  104. --oauth2-bearer TOKEN OAuth 2 Bearer Token (IMAP, POP3, SMTP)
  105. -o, --output FILE Write to FILE instead of stdout
  106. --pass PASS Pass phrase for the private key (SSL/SSH)
  107. --path-as-is Do not squash .. sequences in URL path
  108. --pinnedpubkey FILE/HASHES Public key to verify peer against (SSL)
  109. --post301 Do not switch to GET after following a 301 redirect (H)
  110. --post302 Do not switch to GET after following a 302 redirect (H)
  111. --post303 Do not switch to GET after following a 303 redirect (H)
  112. --preproxy [PROTOCOL://]HOST[:PORT] Proxy before HTTP(S) proxy
  113. -#, --progress-bar Display transfer progress as a progress bar
  114. --proto PROTOCOLS Enable/disable PROTOCOLS
  115. --proto-default PROTOCOL Use PROTOCOL for any URL missing a scheme
  116. --proto-redir PROTOCOLS Enable/disable PROTOCOLS on redirect
  117. -x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port
  118. --proxy-anyauth Pick "any" proxy authentication method (H)
  119. --proxy-basic Use Basic authentication on the proxy (H)
  120. --proxy-digest Use Digest authentication on the proxy (H)
  121. --proxy-cacert FILE CA certificate to verify peer against for proxy (SSL)
  122. --proxy-capath DIR CA directory to verify peer against for proxy (SSL)
  123. --proxy-cert CERT[:PASSWD] Client certificate file and password for proxy (SSL)
  124. --proxy-cert-type TYPE Certificate file type (DER/PEM/ENG) for proxy (SSL)
  125. --proxy-ciphers LIST SSL ciphers to use for proxy (SSL)
  126. --proxy-crlfile FILE Get a CRL list in PEM format from the given file for proxy
  127. --proxy-insecure Allow connections to SSL sites without certs for proxy (H)
  128. --proxy-key KEY Private key file name for proxy (SSL)
  129. --proxy-key-type TYPE Private key file type for proxy (DER/PEM/ENG) (SSL)
  130. --proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)
  131. --proxy-ntlm Use NTLM authentication on the proxy (H)
  132. --proxy-header LINE Pass custom header LINE to proxy (H)
  133. --proxy-pass PASS Pass phrase for the private key for proxy (SSL)
  134. --proxy-ssl-allow-beast Allow security flaw to improve interop for proxy (SSL)
  135. --proxy-tlsv1 Use TLSv1 for proxy (SSL)
  136. --proxy-tlsuser USER TLS username for proxy
  137. --proxy-tlspassword STRING TLS password for proxy
  138. --proxy-tlsauthtype STRING TLS authentication type for proxy (default SRP)
  139. --proxy-service-name NAME SPNEGO proxy service name
  140. --service-name NAME SPNEGO service name
  141. -U, --proxy-user USER[:PASSWORD] Proxy user and password
  142. --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port
  143. -p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)
  144. --pubkey KEY Public key file name (SSH)
  145. -Q, --quote CMD Send command(s) to server before transfer (F/SFTP)
  146. --random-file FILE File for reading random data from (SSL)
  147. -r, --range RANGE Retrieve only the bytes within RANGE
  148. --raw Do HTTP "raw"; no transfer decoding (H)
  149. -e, --referer Referer URL (H)
  150. -J, --remote-header-name Use the header-provided filename (H)
  151. -O, --remote-name Write output to a file named as the remote file
  152. --remote-name-all Use the remote file name for all URLs
  153. -R, --remote-time Set the remote file's time on the local output
  154. -X, --request COMMAND Specify request command to use
  155. --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
  156. --retry NUM Retry request NUM times if transient problems occur
  157. --retry-connrefused Retry on connection refused (use with --retry)
  158. --retry-delay SECONDS Wait SECONDS between retries
  159. --retry-max-time SECONDS Retry only within this period
  160. --sasl-ir Enable initial response in SASL authentication
  161. -S, --show-error Show error. With -s, make curl show errors when they occur
  162. -s, --silent Silent mode (don't output anything)
  163. --socks4 HOST[:PORT] SOCKS4 proxy on given host + port
  164. --socks4a HOST[:PORT] SOCKS4a proxy on given host + port
  165. --socks5 HOST[:PORT] SOCKS5 proxy on given host + port
  166. --socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy
  167. --socks5-gssapi-service NAME SOCKS5 proxy service name for GSS-API
  168. --socks5-gssapi-nec Compatibility with NEC SOCKS5 server
  169. -Y, --speed-limit RATE Stop transfers below RATE for 'speed-time' secs
  170. -y, --speed-time SECONDS Trigger 'speed-limit' abort after SECONDS (default: 30)
  171. --ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)
  172. --ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)
  173. -2, --sslv2 Use SSLv2 (SSL)
  174. -3, --sslv3 Use SSLv3 (SSL)
  175. --ssl-allow-beast Allow security flaw to improve interop (SSL)
  176. --ssl-no-revoke Disable cert revocation checks (WinSSL)
  177. --stderr FILE Where to redirect stderr (use "-" for stdout)
  178. --suppress-connect-headers Suppress proxy CONNECT response headers
  179. --tcp-nodelay Use the TCP_NODELAY option
  180. --tcp-fastopen Use TCP Fast Open
  181. -t, --telnet-option OPT=VAL Set telnet option
  182. --tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)
  183. --tftp-no-options Do not send TFTP options requests
  184. -z, --time-cond TIME Transfer based on a time condition
  185. -1, --tlsv1 Use >= TLSv1 (SSL)
  186. --tlsv1.0 Use TLSv1.0 (SSL)
  187. --tlsv1.1 Use TLSv1.1 (SSL)
  188. --tlsv1.2 Use TLSv1.2 (SSL)
  189. --tlsv1.3 Use TLSv1.3 (SSL)
  190. --tls-max VERSION Use TLS up to VERSION (SSL)
  191. --trace FILE Write a debug trace to FILE
  192. --trace-ascii FILE Like --trace, but without hex output
  193. --trace-time Add time stamps to trace/verbose output
  194. --tr-encoding Request compressed transfer encoding (H)
  195. -T, --upload-file FILE Transfer FILE to destination
  196. --url URL URL to work with
  197. -B, --use-ascii Use ASCII/text transfer 使用ASCII文本传输
  198. -u, --user USER[:PASSWORD] Server user and password
  199. --tlsuser USER TLS username
  200. --tlspassword STRING TLS password
  201. --tlsauthtype STRING TLS authentication type (default: SRP)
  202. --unix-socket PATH Connect through this Unix domain socket
  203. --abstract-unix-socket PATH Connect to an abstract Unix domain socket
  204. -A, --user-agent STRING Send User-Agent STRING to server (H)
  205. -v, --verbose Make the operation more talkative
  206. -V, --version Show version number and quit
  207. -w, --write-out FORMAT Use output FORMAT after completion
  208. --xattr Store metadata in extended file attributes
  209. -q, --disable Disable .curlrc (must be first parameter)

以下介绍几种简单的命令

  1. curl url(获取该网址的文本信息)

    1. curl www.zhujy.com
    2. 这就是获取的www.zhujy.com信息
    3. <!DOCTYPE html>
    4. <html>
    5. <head>
    6. <title>Welcome to nginx!</title>
    7. <style>
    8. body {
    9. width: 35em;
    10. margin: 0 auto;
    11. font-family: Tahoma, Verdana, Arial, sans-serif;
    12. }
    13. </style>
    14. </head>
    15. <body>
    16. <h1>Welcome to nginx!</h1>
    17. <p>If you see this page, the nginx web server is successfully installed and
    18. working. Further configuration is required.</p>
    19. <p>For online documentation and support please refer to
    20. <a href="http://nginx.org/">nginx.org</a>.<br/>
    21. Commercial support is available at
    22. <a href="http://nginx.com/">nginx.com</a>.</p>
    23. <p><em>Thank you for using nginx.</em></p>
    24. </body>
    25. </html>
  2. curl -i url(获取该网址的文本信息以及协议头部信息)

    curl -i www.zhujy.com

    这就是获取的www.zhujy.com文本信息以及协议头部信息。
    HTTP/1.1 200 OK
    Server: nginx/1.14.0
    Date: Mon, 11 Mar 2019 02:06:55 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Mon, 29 Oct 2018 09:52:22 GMT
    Connection: keep-alive
    ETag: “5bd6d856-264”
    Accept-Ranges: bytes

    <!DOCTYPE html>



    Welcome to nginx!



    Welcome to nginx!


    If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.



    For online documentation and support please refer to
    nginx.org.

    Commercial support is available at
    nginx.com.



    Thank you for using nginx.



  3. curl -x proxy url(使用代理获取网页文本信息)

    1. curl -x 47.94.151.148:80 zhujy.com.cn
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    4. <head>
    5. <title>Test Page for the Nginx HTTP Server on Fedora</title>
    6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    7. <style type="text/css">
    8. /*<![CDATA[*/
    9. body {
    10. background-color: #fff;
    11. color: #000;
    12. font-size: 0.9em;
    13. font-family: sans-serif,helvetica;
    14. margin: 0;
    15. padding: 0;
    16. }
    17. :link {
    18. color: #c00;
    19. }
    20. :visited {
    21. color: #c00;
    22. }
    23. a:hover {
    24. color: #f50;
    25. }
    26. h1 {
    27. text-align: center;
    28. margin: 0;
    29. padding: 0.6em 2em 0.4em;
    30. background-color: #294172;
    31. color: #fff;
    32. font-weight: normal;
    33. font-size: 1.75em;
    34. border-bottom: 2px solid #000;
    35. }
    36. h1 strong {
    37. font-weight: bold;
    38. font-size: 1.5em;
    39. }
    40. h2 {
    41. text-align: center;
    42. background-color: #3C6EB4;
    43. font-size: 1.1em;
    44. font-weight: bold;
    45. color: #fff;
    46. margin: 0;
    47. padding: 0.5em;
    48. border-bottom: 2px solid #294172;
    49. }
    50. hr {
    51. display: none;
    52. }
    53. .content {
    54. padding: 1em 5em;
    55. }
    56. .alert {
    57. border: 2px solid #000;
    58. }
    59. img {
    60. border: 2px solid #fff;
    61. padding: 2px;
    62. margin: 2px;
    63. }
    64. a:hover img {
    65. border: 2px solid #294172;
    66. }
    67. .logos {
    68. margin: 1em;
    69. text-align: center;
    70. }
    71. /*]]>*/
    72. </style>
    73. </head>
    74. <body>
    75. <h1>Welcome to <strong>nginx</strong> on Fedora!</h1>
    76. <div class="content">
    77. <p>This page is used to test the proper operation of the
    78. <strong>nginx</strong> HTTP server after it has been
    79. installed. If you can read this page, it means that the
    80. web server installed at this site is working
    81. properly.</p>
    82. <div class="alert">
    83. <h2>Website Administrator</h2>
    84. <div class="content">
    85. <p>This is the default <tt>index.html</tt> page that
    86. is distributed with <strong>nginx</strong> on
    87. Fedora. It is located in
    88. <tt>/usr/share/nginx/html</tt>.</p>
    89. <p>You should now put your content in a location of
    90. your choice and edit the <tt>root</tt> configuration
    91. directive in the <strong>nginx</strong>
    92. configuration file
    93. <tt>/etc/nginx/nginx.conf</tt>.</p>
    94. </div>
    95. </div>
    96. <div class="logos">
    97. <a href="http://nginx.net/"><img
    98. src="nginx-logo.png"
    99. alt="[ Powered by nginx ]"
    100. width="121" height="32" /></a>
    101. <a href="http://fedoraproject.org/"><img
    102. src="poweredby.png"
    103. alt="[ Powered by Fedora ]"
    104. width="88" height="31" /></a>
    105. </div>
    106. </div>
    107. </body>
    108. </html>
  4. curl -I url(仅返回请求头部信息)

    1. curl -I www.zhujy.com.cn
    2. HTTP/1.1 200 OK
    3. Server: nginx/1.14.0
    4. Date: Mon, 11 Mar 2019 03:34:29 GMT
    5. Content-Type: text/html
    6. Content-Length: 612
    7. Last-Modified: Mon, 29 Oct 2018 09:52:22 GMT
    8. Connection: keep-alive
    9. ETag: "5bd6d856-264"
    10. Accept-Ranges: bytes
  5. curl -i -X get -H “Content-Type:application/json” url (使用get模拟json格式请求接口)

    1. curl -i -X GET -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8' 'http://url/bind/agentOnWork/v2?Sig=*******?type=1&proviceName=广东&operator=GD222&productName=CESHI&userId=13871576780'
  6. curl -i -X POST -H “Content-Type:application/json” -d‘{}’ url (使用post模拟json格式请求接口)

    1. curl -i -X POST -H 'Content-Type:application/x-www-form-urlencoded; charset=UTF-8' -d '{"type":"1","proviceName":"广东","operator":"GD222","productName":"CESHI","userId":"13871576780"}' 'http://url/bind/agentOnWork/v2?Sig=*******'

发表评论

表情:
评论列表 (有 0 条评论,484人围观)

还没有评论,来说两句吧...

相关阅读