Este artículo presenta sus principales parámetros de la línea de comandos como referencia diaria para una fácil referencia. El contenido se traduce principalmente de "curl cookbook" . Para ahorrar espacio, el siguiente ejemplo no incluye la salida en tiempo de ejecución. Para los principiantes, pueden leer el "tutorial de curl para principiantes" que escribí antes .
Sin ningún parámetro, curl emitirá una solicitud GET.
$ curl https://www.example.com
El comando anterior envía www.example.com
una solicitud GET al servidor, y el contenido devuelto por el servidor se mostrará en la línea de comando.
-A
-A
El parámetro especifica el encabezado del agente de usuario del cliente, es decir User-Agent
. La cadena de agente de usuario predeterminada para curl es curl/[version]
.
$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
El comando anterior se User-Agent
cambiará al navegador Chrome.
$ curl -A '' https://google.com
El comando anterior eliminará el User-Agent
encabezado.
También puede -H
especificar directamente el encabezado a través de parámetros y cambiarlo User-Agent
.
$ curl -H 'User-Agent: php/1.0' https://google.com
-B
-b
Los parámetros se utilizan para enviar cookies al servidor.
$ curl -b 'foo=bar' https://google.com
El comando anterior generará un encabezado Cookie: foo=bar
y enviará una cookie con un nombre foo
y un valor al servidor bar
.
$ curl -b 'foo1=bar;foo2=bar2' https://google.com
El comando anterior envía dos cookies.
$ curl -b cookies.txt https://www.google.com
El comando anterior lee el archivo local cookies.txt
, que contiene la cookie establecida por el servidor (ver -c
parámetros), y lo envía al servidor.
-C
-c
El parámetro escribe la cookie establecida por el servidor en un archivo.
$ curl -c cookies.txt https://www.google.com
El comando anterior escribe las cookies establecidas por la respuesta HTTP del servidor en un archivo de texto cookies.txt
.
-D
-d
El parámetro se utiliza para enviar el cuerpo de datos de la solicitud POST.
$ curl -d'login=emma&password=123'-X POST https://google.com/login # 或者 $ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login
Después de usar los -d
parámetros, las solicitudes HTTP agregarán encabezados automáticamente Content-Type : application/x-www-form-urlencoded
. Y convertirá automáticamente la solicitud al método POST, por lo que se puede omitir -X POST
.
-d
El parámetro puede leer los datos del archivo de texto local y enviarlo al servidor.
$ curl -d '@data.txt' https://google.com/login
El comando anterior lee data.txt
el contenido del archivo y lo envía al servidor como un cuerpo de datos.
--data-urlencode
--data-urlencode
Los parámetros son equivalentes al -d
cuerpo de datos de la solicitud POST. La diferencia es que los datos enviados se codificarán automáticamente en la URL.
$ curl --data-urlencode 'comment=hello world' https://google.com/login
En el código anterior, hello world
hay un espacio entre los datos enviados , que debe estar codificado en URL.
-mi
-e
El parámetro se utiliza para establecer el encabezado HTTP Referer
, que indica el origen de la solicitud.
curl -e 'https://google.com?q=example' https://www.example.com
El comando anterior establece el Referer
encabezado en https://google.com?q=example
.
-H
Los parámetros se pueden agregar directamente al encabezado Referer
para lograr el mismo efecto.
curl -H 'Referer: https://google.com?q=example' https://www.example.com
-F
-F
Los parámetros se utilizan para cargar archivos binarios al servidor.
$ curl -F '[email protected]' https://google.com/profile
El comando anterior agregará un encabezado a la solicitud HTTP Content-Type: multipart/form-data
y luego cargará el archivo photo.png
como un file
campo.
-F
El parámetro puede especificar el tipo MIME.
$ curl -F '[email protected];type=image/png' https://google.com/profile
El comando anterior especifica el tipo MIME image/png
; de lo contrario, curl establecerá el tipo MIME application/octet-stream
.
-F
El parámetro también puede especificar el nombre del archivo.
$ curl -F '[email protected];filename=me.png' https://google.com/profile
En el comando anterior, el nombre del archivo original es photo.png
, pero el nombre del archivo recibido por el servidor me.png
.
-GRAMO
-G
Los parámetros se utilizan para construir la cadena de consulta de la URL.
$ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
El comando anterior emitirá una solicitud GET, y la URL solicitada real es https://google.com/search?q=kitties&count=20
. Si se omite --G
, se emitirá una solicitud POST.
Si los datos necesitan codificación URL, se pueden combinar con --data--urlencode
parámetros.
$ curl -G --data-urlencode 'comment=hello world' https://www.example.com
-H
-H
El parámetro agrega el encabezado de la solicitud HTTP.
$ curl -H 'Accept-Language: en-US' https://google.com
El comando anterior agrega encabezados HTTP Accept-Language: en-US
.
$ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com
El comando anterior agrega dos encabezados HTTP.
$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
El comando anterior agrega el encabezado de la solicitud HTTP Content-Type: application/json
y luego -d
envía los datos JSON con parámetros.
-I
-i
El parámetro imprime el encabezado HTTP de la respuesta del servidor.
$ curl -i https://www.example.com
Después de que el comando anterior reciba la respuesta del servidor, primero muestre el encabezado de la respuesta del servidor, luego deje una línea y luego muestre el código fuente de la página web.
-I
-I
El parámetro envía una solicitud HEAD al servidor y luego se imprime el encabezado HTTP devuelto por el servidor.
$ curl -I https://www.example.com
El comando anterior genera la respuesta del servidor a la solicitud HEAD.
--head
Los parámetros son equivalentes a -I
.
$ curl --head https://www.example.com
-k
-k
El parámetro especifica que se omita la detección de SSL.
$ curl -k https://www.example.com
El comando anterior no verificará si el certificado SSL del servidor es correcto.
-L
-L
El parámetro hace que la solicitud HTTP siga la redirección del servidor. curl no sigue las redirecciones de forma predeterminada.
$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
- tasa límite
--limit-rate
Se utiliza para limitar el ancho de banda de las solicitudes y respuestas HTTP para simular un entorno de baja velocidad de Internet.
$ curl --limit-rate 200k https://google.com
El comando anterior limita el ancho de banda a 200 K bytes por segundo.
-O
-o
El parámetro guarda la respuesta del servidor como un archivo, que es equivalente a un wget
comando.
$ curl -o example.html https://www.example.com
El comando anterior se www.example.com
guardará como example.html
.
-O
-O
El parámetro guarda la respuesta del servidor como un archivo y utiliza la última parte de la URL como nombre de archivo.
$ curl -O https://www.example.com/foo/bar.html
El comando anterior guarda la respuesta del servidor como un archivo con el nombre del archivo bar.html
.
-s
-s
Los parámetros no mostrarán información de error y progreso.
$ curl -s https://www.example.com
Una vez que se produce un error en el comando anterior, no se mostrará ningún mensaje de error. Si no se produce ningún error, el resultado de la operación se mostrará normalmente.
Si desea que curl no produzca ningún resultado, puede usar el siguiente comando.
$ curl -s -o /dev/null https://google.com
-S
-S
El parámetro especifica que solo se emite información de error y, por lo general, se -s
usa con él.
$ curl -s -o /dev/null https://google.com
No hay salida del comando anterior a menos que ocurra un error.
-u
-u
Los parámetros se utilizan para establecer el nombre de usuario y la contraseña para la autenticación del servidor.
$ curl -u 'bob:12345' https://google.com/login
El comando anterior establece el nombre de usuario bob
y la contraseña en 12345
y luego los convierte en un encabezado HTTP Authorization: Basic Ym9iOjEyMzQ1
.
curl puede reconocer el nombre de usuario y la contraseña en la URL.
$ curl https://bob:[email protected]/login
El comando anterior puede reconocer el nombre de usuario y la contraseña en la URL y convertirlos al encabezado HTTP en el ejemplo anterior.
$ curl -u 'bob' https://google.com/login
El comando anterior solo establece el nombre de usuario, después de la ejecución, curl le pedirá al usuario que ingrese la contraseña.
-v
-v
Todo el proceso de comunicación de salida de parámetros se utiliza para la depuración.
$ curl -v https://www.example.com
--trace
Los parámetros también se pueden utilizar para la depuración y se generarán datos binarios sin procesar.
$ curl --trace - https://www.example.com
-X
-x
El parámetro especifica el proxy para la solicitud HTTP.
$ curl -x socks5://james:[email protected]:8080 https://www.example.com
El comando anterior especifica myproxy.com:8080
el proxy socks5 a través del cual se envía la solicitud HTTP .
Si no se especifica el protocolo de proxy, el predeterminado es HTTP.
$ curl -x james:[email protected]:8080 https://www.example.com
En el comando anterior, el proxy solicitado usa el protocolo HTTP.
-X
-X
El parámetro especifica el método de la solicitud HTTP.
$ curl -X POST https://www.example.com
El par de comandos anterior https://www.example.com
emite una solicitud POST.