200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > curl发送post请求带Json参数 发送get请求

curl发送post请求带Json参数 发送get请求

时间:2024-05-12 00:21:51

相关推荐

curl发送post请求带Json参数 发送get请求

文章目录

curl发送post请求带Json参数curl发送get请求带参数curl 参数

curl发送post请求带Json参数

1:linux下执行curl命令发送post请求

curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d '{"param":"0608"}'

H表示请求头,-d表示参数

参考案例:

curl -v http://localhost:8080/JsonSendSms -d '{"mobile":"00000000000","smsID":"12345678999","smscontent":"this is a test2"}' -X POST -H "Content-Type: application/json" -k

说明:

linux下-d后面的参数需要用单引号‘引起来 ,windows下不需要单引号

2:linux下shell脚本中传递动态参数

param="0608";curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d '{"param":"'${param}'"}'

说明:

shell脚本中变量赋值符左右不能有空格,即上面param变量等号=左右不能有空格。

若参数过长则放到文件中

步骤一:在执行路径下,新建文件如param.json

说明:文件中的内容为json参数内容,无需进行转义

步骤二: 执行命令

curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d @param.json

linux下shell脚本中动态传递参数

前言:

我们经常会写shell脚本,并放到linux系统中,执行shell脚本中的命令,远程调用某个http请求,下面讲解一下如何调用,及在shell脚本中如何动态传递参数

步骤一:创建一个task.sh文件,代码如下

task1() {echo "**********demo1**********"curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/file/import -d '{"param":"'$2'"}'}task2() {echo "********** demo2 **********"curl -X POST -H "referer:http://localhost" http://localhost:8080/file/export}case "$1" in"1") task1 $1 $2;;"2") task2;;esac

步骤二:在linux中进入到task.sh同一目录下,然后执行命令。

示例1: ./task.sh 1 demo.jpg

示例2: ./task.sh 2

下面是shell脚本中读取参数的其中一种方式:

采用 $0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0 获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况。

curl发送get请求带参数

curl -k "?AppID=app-demo&age=11"

语义解释:

为什么要带参数-k

因为发送的是https请求 -k是为了跳过ssl证书认证

为什么?AppID=app-demo&age=11要用引号引起来

由于URL中&不转义,curl请求时会分开访问。(即?AppID=app-demo&age=11可能会被分成两次请求)

解决方法一:用单引号或双引号引起来

解决方法二:URL连接&前加\ 就可以取消转义

curl 参数

常见参数:

-a/--append 上传文件时,附加到目标文件--anyauth 可以使用“任何”身份验证方法--basic 使用HTTP基本验证-B/--use-ascii 使用ASCII文本传输-d/--data <data> HTTP POST方式传送数据--data-ascii <data> 以ascii的方式post数据--data-binary <data>以二进制的方式post数据--negotiate使用HTTP身份验证--digest 使用数字身份验证--disable-eprt 禁止使用EPRT或LPRT--disable-epsv 禁止使用EPSV--egd-file <file> 为随机数据(SSL)设置EGD socket路径--tcp-nodelay 使用TCP_NODELAY选项-E/--cert <cert[:passwd]>客户端证书文件和密码 (SSL)--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)--key <key>私钥文件名 (SSL)--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)--pass <pass> 私钥密码 (SSL)--engine <eng> 加密引擎使用 (SSL). "--engine list" for list--cacert <file>CA证书 (SSL)--capath <directory> CA目 (made using c_rehash) to verify peer against (SSL)--ciphers <list>SSL密码--compressed要求返回是压缩的形势 (using deflate or gzip)--connect-timeout <seconds> 设置最大请求时间--create-dirs 建立本地目录的目录层次结构--crlf上传是把LF转变成CRLF--ftp-create-dirs 如果远程目录不存在,创建远程目录--ftp-method [multicwd/nocwd/singlecwd] 控制CWD的使用--ftp-pasv 使用 PASV/EPSV 代替端口--ftp-skip-pasv-ip 使用PASV的时候,忽略该IP地址--ftp-ssl 尝试用 SSL/TLS 来进行ftp数据传输--ftp-ssl-reqd 要求用 SSL/TLS 来进行ftp数据传输-F/--form <name=content> 模拟http表单提交数据-form-string <name=string>模拟http表单提交数据-g/--globoff禁用网址序列和范围使用{}和[]-G/--get 以get的方式来发送数据-h/--help 帮助-H/--header <line> 自定义头信息传递给服务器--ignore-content-length 忽略的HTTP头信息的长度-i/--include输出时包括protocol头信息-I/--head 只显示文档信息-j/--junk-session-cookies读取文件时忽略session cookie--interface <interface> 使用指定网络接口/地址--krb4 <level> 使用指定安全级别的krb4-k/--insecure 允许不使用证书到SSL站点-K/--config指定的配置文件读取-l/--list-only 列出ftp目录下的文件名称--limit-rate <rate> 设置传输速度--local-port<NUM> 强制使用本地端口号-m/--max-time <seconds> 设置最大传输时间,指定处理的最大时长--max-redirs <num> 设置最大读取的目录数--max-filesize <bytes>设置最大下载的文件总量-M/--manual显示全手动-n/--netrc 从netrc文件中读取用户名和密码--netrc-optional使用 .netrc 或者 URL来覆盖-n--ntlm使用 HTTP NTLM 身份验证-N/--no-buffer 禁用缓冲输出-p/--proxytunnel使用HTTP代理--proxy-anyauth选择任一代理身份验证方法--proxy-basic 在代理上使用基本身份验证--proxy-digest 在代理上使用数字身份验证--proxy-ntlm在代理上使用ntlm身份验证-P/--ftp-port <address> 使用端口地址,而不是使用PASV-Q/--quote <cmd>文件传输前,发送命令到服务器--range-file读取(SSL)的随机文件-R/--remote-time在本地生成文件时,保留远程文件时间--retry <num> 传输出现问题时,重试的次数--retry-delay <seconds> 传输出现问题时,设置重试间隔时间--retry-max-time <seconds>传输出现问题时,设置最大重试时间-S/--show-error显示错误--socks4 <host[:port]>用socks4代理给定主机和端口--socks5 <host[:port]>用socks5代理给定主机和端口-t/--telnet-option <OPT=val> Telnet选项设置--trace <file> 对指定文件进行debug--trace-ascii <file> Like --跟踪但没有hex输出--trace-time跟踪/详细输出时,添加时间戳--url <URL>Spet URL to work with-U/--proxy-user <user[:password]> 设置代理用户名和密码-V/--version显示版本信息-X/--request <command>指定什么命令-y/--speed-time放弃限速所要的时间。默认为30-Y/--speed-limit停止传输速度的限制,速度时间'秒-z/--time-cond 传送时间设置-0/--http1.0使用HTTP 1.0-1/--tlsv1 使用TLSv1(SSL)-2/--sslv2 使用SSLv2的(SSL)-3/--sslv3 使用的SSLv3(SSL)--3p-quote like -Q for the source URL for 3rd party transfer--3p-url 使用url,进行第三方传送--3p-user 使用用户名和密码,进行第三方传送-4/--ipv4 使用IP4-6/--ipv6 使用IP6

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。