Curl Binary Option


Recientemente usé curls - opción de datos para cargar algunos JSON a un servidor, y después de leer la página de manual, no estoy seguro de si puedo tener fe de que llegó allí intacto. Curls manpage explícitamente describe una diferencia entre curls --data / --data-ascii y --data-binario opciones a saber, que cuando la sintaxis del nombre de archivo se utiliza para hacer curl leer datos de un archivo, --data tira nuevas líneas de la Archivo, pero - binario de datos no. Sin embargo, la página de manual también hace que suene como si hubiera más diferencias. El siguiente pasaje de la descripción de - binario de datos sólo puede ser razonablemente interpretado para significar que hay ciertas conversiones además de la eliminación de nueva línea que --datos hace sobre los datos que se da: --data-binario ltdata Los datos se publican en un De manera similar a - data-ascii, excepto que se conservan las líneas de nuevo y los retornos de carro y las conversiones nunca se hacen. (Énfasis mío) ¿Cuáles son estas misteriosas conversiones Incluso existen? No están documentados en la sección de manuales en la opción --data, ni puedo descubrirlos a través de la experimentación. Las cosas obvias que uno podría esperar de la opción --data para transformar (como signos comerciales, barras, hashes, signos de interrogación, signos de igualdad, caracteres chinos o sonriente cara de gato con ojos sonrientes) se envían intactos y sin cambios. ¿Cuál es el misterio de las conversiones? Sin la bandera binaria stdin se lee en modo texto (esto hace una diferencia en Windows), y, en las plataformas que lo necesitan (IBM mainframes y Similares), los datos se vuelven a codificar desde charset IBM-1047 (también conocido como EBCDIC) a ISO8859-1 usando iconv (3). También hay una diferencia en la forma en que se calcula la longitud de datos (tal como se pasa a Content-Length y amigos). Si esa pregunta está conectada a sus otras preguntas de Hudson utilice el comando que proporcionan. Necesita cambiar un poco para leer de un archivo: lea la página de manual. Siguiendo un resumen para el parámetro - d. (HTTP) Envía los datos especificados en una solicitud POST al servidor HTTP, de la misma manera que hace un navegador cuando un usuario ha rellenado un formulario HTML y presiona el botón Enviar. Esto hará que curl pase los datos al servidor usando el tipo de contenido application / x-www-form-urlencoded. Compare con el formato - F / -. - d / - los datos son los mismos que --data-ascii. Para publicar datos puramente binarios, debe usar la opción --data-binario. Para codificar URL el valor de un campo de formulario puede utilizar --data-urlencode. Si cualquiera de estas opciones se utiliza más de una vez en la misma línea de comandos, las piezas de datos especificadas se combinarán con un símbolo de amplificador separador. Por lo tanto, usar - d namedaniel - d skilllousy generaría un fragmento post que se parece a namedanielampskilllousy. Si inicia los datos con la letra, el resto debe ser un nombre de archivo para leer los datos o, si desea que curl lea los datos de stdin. El contenido del archivo debe estar ya codificado por URL. También se pueden especificar varios archivos. Publicar datos de un archivo llamado foobar se haría con --data foobar. Respondió Jun 9 10 at 17:55 Desde la página de manual. Creo que estos son los droides que estás buscando: (HTTP) Esto permite que curl emule un formulario rellenado en el que un usuario ha presionado el botón de envío. Esto provoca curl a datos POST utilizando el Content-Type multipart / form-data según RFC2388. Esto permite cargar archivos binarios, etc. Para forzar que la parte de contenido sea un archivo, prefija el nombre del archivo con un signo. Por ejemplo, para enviar su archivo de contraseña al servidor, donde password es el nombre del campo de formulario al cual / etc / passwd será la entrada: curl - F contraseña / etc / passwd mypasswords Así que en su caso, esto sería algo Como curl - F archivo / algunos / archivo / on / your / local / disk localhost: 8080 respondió Jun 9 10 at 15:48 Esta solución tiene la ventaja añadida de ser capaz de nombrar el archivo que se envía (a diferencia de la solución elegida anterior) , Y por lo tanto puede por ejemplo Enviar varios archivos. Ndash David Cairns Jun 14 11 at 20:21 El archivo de formato es útil si usted quiere canalizar su archivo pulg ndash Steven Lu Jul 24 13 at 6:28 En caso de que alguien está buscando para enviar un archivo y otra información: use - F keyval - F keyval tantas veces como lo necesite. Enclosing todos los parámetros del poste en una secuencia grande separada por el amperio no trabaja. Con Jenkins 1.494, pude enviar un archivo a un parámetro de trabajo en Ubuntu Linux 12.10 usando curl con parámetros - form: En el servidor Jenkins, configuré un trabajo que acepta un solo parámetro : Un parámetro de carga de archivos denominado myfileparam. La primera línea de esa llamada curl construye un formulario web con un parámetro llamado myfileparam (igual que en el trabajo), su valor será el contenido de un archivo en el sistema de archivos local denominado /local/path/to/your/file. txt . El prefijo de símbolo indica a curl que envíe un archivo local en lugar del nombre de archivo dado. La segunda línea define una petición JSON que coincide con los parámetros de formulario en la línea uno: un parámetro de archivo denominado myfileparam. La tercera línea activa el botón Crear de formularios. La cuarta línea es la URL del trabajo con el sufijo / build. Si esta llamada tiene éxito, curl devuelve 0. Si no tiene éxito, el error o excepción del servicio se imprime en la consola. Esta respuesta toma mucho de una vieja entrada del blog referente a Hudson. Que deconstruí y volví a trabajar para mis propias necesidades. Respondió Mar 12 13 at 21:58 Heres cómo se puede POST XML en Windows utilizando curl línea de comandos en Windows. Mejor utilizar el archivo batch /.cmd para que: respondió 20 de noviembre 13 a las 16:16 Si tiene varios encabezados, entonces puede que desee utilizar lo siguiente: respondió 23 de julio a las 5:17 Si está utilizando curl en Windows: 8 14 at 13:07 Su respuesta 2016 Stack Exchange, IncLinux y Unix curl comando Acerca de curl curl es una herramienta para transferir datos desde o hacia un servidor, utilizando uno de los protocolos soportados (HTTP, HTTPS, FTP, FTPS, SCP, SFTP TFTP, DICT, TELNET, LDAP o FILE). El comando está diseñado para funcionar sin interacción del usuario. Curl ofrece soporte de proxy, autenticación de usuario. FTP de carga. HTTP, conexiones SSL, cookies. El curriculum vitae de la transferencia de archivo, Metalink, y muchas otras características, enumeradas abajo. Progreso Meter curl normalmente muestra un medidor de progreso durante las operaciones, lo que indica la cantidad de datos transferidos, las velocidades de transferencia y el tiempo estimado a la izquierda, etc curl muestra estos datos a la terminal por defecto, por lo que si invocar curl para hacer una operación y se trata Para escribir datos en el terminal, desactiva el medidor de progreso, ya que de lo contrario se dañaría el medidor de progreso de mezcla de salida y los datos de respuesta. Si desea un medidor de progreso para las solicitudes HTTP POST o PUT, debe redirigir la salida de la respuesta a un archivo, utilizando el redirector de shell (gt), el archivo - o o similar. No es el mismo caso para la carga FTP, ya que la operación no escupirá ningún dato de respuesta al terminal. Si prefiere una barra de progreso en lugar del medidor regular, - es su amigo. Acerca de la URL La sintaxis de la URL depende del protocolo. Encontrará una descripción detallada en RFC 3986. Puede especificar varias URL o partes de URL escribiendo conjuntos de piezas entre llaves como en: o puede obtener secuencias de series alfanuméricas utilizando como en: ftp: //ftp. numericals/file1-100.txt ftp: // ftp. Numeric / file001-100.txt ftp: //ftp. letters/filea-z. txt Las secuencias anidadas no son compatibles, pero se pueden usar varias al lado del otro: Puede especificar cualquier cantidad de URL en la línea de comandos. Se buscarán de una manera secuencial en el orden especificado. Puede especificar un contador de pasos para los intervalos para obtener cada número N o letra: Si especifica un URL sin protocolo: // prefijo, curl intentará adivinar qué protocolo desea. A continuación, se aplicará por defecto a HTTP, pero probará otros protocolos basados ​​en prefijos de nombre de host utilizados con frecuencia. Por ejemplo, para nombres de host que comienzan con ftp. Curl asumirá que desea hablar FTP. Curl hará todo lo posible para usar lo que le pase como una URL. No está tratando de validarlo como una URL sintácticamente correcta por cualquier medio, pero es en cambio muy liberal con lo que acepta. Curl intentará reutilizar las conexiones para transferencias de archivos múltiples, de modo que obtener muchos archivos del mismo servidor no hará múltiples conexiones / apretones de manos. Esto mejora la velocidad. Por supuesto esto sólo se hace en los archivos especificados en una sola línea de comandos y no se puede utilizar entre curl invoca separado. Curl syntax Opciones --cacert ltCA certificategt (SSL) Indica curl para utilizar el archivo de certificado especificado para verificar el par. El archivo puede contener varios certificados de CA. Los certificados deben estar en formato PEM. Normalmente curl se construye para utilizar un archivo predeterminado para esto, por lo que esta opción se suele utilizar para alterar ese archivo predeterminado. Curl reconoce la variable de entorno denominada 39 CURLCABUNDLE 39 si se establece, y utiliza la vía de acceso dada como ruta de acceso a un paquete cert de CA. Esta opción anula esa variable. La versión de curl de Windows buscará automáticamente un archivo de certificados de CA denominado 39 curl-ca-bundle. crt 39, en el mismo directorio que curl. exe. O en el directorio de trabajo actual, o en cualquier carpeta a lo largo de su PATH. Si el curl se construye contra la biblioteca SSL de NSS, el módulo NMS PEM PKCS11 (libnsspem. so) debe estar disponible para que esta opción funcione correctamente. Si se utiliza esta opción varias veces, se utilizará la última. --capath ltCA certificado directorygt (SSL) Indica curl para utilizar el directorio de certificados especificado para verificar el par. Los certificados deben estar en formato PEM y el directorio debe haber sido procesado utilizando la utilidad crehash suministrada con openssl. El uso de --capath puede permitir que curl haga conexiones https mucho más eficiente que usar --cacert si el archivo --cacert contiene muchos certificados de CA. Si se utiliza esta opción varias veces, se utilizará la última. (HTTP) falla silenciosamente (ninguna salida en absoluto) en errores del servidor. Esto se realiza principalmente para mejorar la habilidad de scripts, etc. para tratar mejor los intentos fallidos. En casos normales, cuando un servidor HTTP falla al entregar un documento, devuelve un documento HTML que lo indica (que a menudo también describe por qué). Este indicador no impedirá que la curvatura produzca ese error de devolución 22. Este método no es a prueba de fallos y hay ocasiones en las que pasarán códigos de respuesta sin éxito, especialmente cuando se trata de autenticación (códigos de respuesta 401 y 407). (FTP) Cuando un servidor FTP solicita datos de quotaccount después de que se haya proporcionado nombre de usuario y contraseña, estos datos se envían utilizando el comando ACCT. (Se agregó en 7.13.0) Si esta opción se utiliza dos veces, la segunda anulará el uso anterior. (FTP / SFTP) Cuando una URL / operación FTP utiliza una ruta que actualmente no existe en el servidor, el comportamiento estándar de curl es fallar. Utilizando esta opción, Curl intentará crear directorios faltantes. (FTP) Controla qué método curl debe utilizar para acceder a un archivo en un servidor FTP (S). El argumento del método debe ser una de las siguientes alternativas: curl hace una sola operación CWD para cada parte de ruta en la URL dada. Para jerarquías profundas esto significa muchos comandos. Este es el comportamiento predeterminado pero el más lento. Curl no hace CWD en absoluto. Curl hará SIZE. RETR. STOR. Etc y dar una ruta completa al servidor para todos estos comandos. Este es el comportamiento más rápido. Curl hace una CWD con el directorio completo de destino y luego opera en el archivo quotnormallyquot (como en el caso multicwd). Esto es algo más compatible con los estándares de 39 nocwd 39 pero sin la pena completa de 39 39 multicwd (FTP) Utilice PASV al transferir. PASV es el comportamiento interno predeterminado, pero con esta opción se puede utilizar para anular una opción anterior de puerto - ftp. (Se agrega en 7.11.0) Si esta opción se utiliza varias veces, las siguientes ocurrencias no hacen ninguna diferencia. Deshacer un pasivo forzado realmente no es factible, pero debes entonces aplicar la correcta - P. --ftp-puerto de nuevo. Modo pasivo significa que curl probará primero el comando EPSV y luego PASV, a menos que se use --disable-epsv. (FTP) Si falla la autenticación con los comandos USER y PASS, envíe este comando. Cuando se conecta al servidor de transporte seguro de Tumbleweed39s a través de FTPS utilizando un certificado de cliente, el uso de quot SITE AUTH quot le dirá al servidor que recupere el nombre de usuario del certificado. (Se agrega en 7.15.5) (FTP) Tell curl para no utilizar la dirección IP que el servidor sugiere en su respuesta a curl 39s PASV comando cuando rizo conecta la conexión de datos. En su lugar, curl volverá a usar la misma dirección IP que ya utiliza para la conexión de control. (Añadida en 7.14.2) Esta opción no tiene efecto si se utiliza PORT, EPRT o EPSV en lugar de PASV. (FTP) Tell curl para enviar un comando PRET antes de PASV (y EPSV). Algunos servidores FTP, principalmente drftpd, requieren este comando no estándar para los listados de directorios, así como para arriba y descargas en el modo PASV. (Agregado en 7.20.x) (FTP) Intente utilizar SSL / TLS para la conexión FTP. Revertir a una conexión no segura si el servidor no soporta SSL / TLS. (Se agregó en 7.11.0) Si esta opción se utiliza dos veces, el segundo volverá a desactivar esto. (FTP) Usar CCC (Clear Command Channel) Cierra la capa SSL / TLS después de la autenticación. El resto de la comunicación del canal de control no se cifrará. Esto permite a los routers NAT seguir la transacción FTP. El modo predeterminado es pasivo. Consulte --ftp-ssl-ccc-mode para otros modos. (Añadido en 7.16.1) (FTP) Usar CCC (Clear Command Channel) Establece el modo CCC. El modo pasivo no iniciará el apagado, sino que esperará a que el servidor lo haga, y no responderá al apagado desde el servidor. El modo activo inicia el apagado y espera una respuesta del servidor. (Agregado en 7.16.2) (FTP) Requerir SSL / TLS para el inicio de sesión FTP, claro para la transferencia. Permite la autenticación segura, pero las transferencias de datos no cifradas para una mayor eficiencia. Error en la transferencia si el servidor no soporta SSL / TLS. (Agregado en 7.16.0) (FTP) Requiere SSL / TLS para la conexión FTP. Finaliza la conexión si el servidor no soporta SSL / TLS. (Se agrega en 7.15.5) Si esta opción se utiliza dos veces, la segunda volverá a desactivar esto. (HTTP) Esto permite que curl emule un formulario rellenado en el que un usuario ha presionado el botón de envío. Esto provoca curl a datos POST utilizando el Content-Type multipart / formulario-datos de acuerdo con RFC1867. Esto permite cargar archivos binarios, etc. Para forzar que la parte 39content39 sea un archivo, prefija el nombre del archivo con un carácter. Para obtener sólo el contenido de un archivo, prefija el nombre del archivo con la letra lt. La diferencia entre y lt es que hace que un archivo se adjunte en la publicación como un archivo de carga, mientras que el lt hace un campo de texto y acaba de obtener el contenido de ese campo de texto de un archivo. Por ejemplo, para enviar su archivo de contraseña al servidor, donde 39password39 es el nombre del campo de formulario al cual / etc / passwd será la entrada: curl - F contraseña / etc / passwd mypasswords Para leer el contenido del archivo de stdin en su lugar De un archivo, use - donde debería haber sido el nombre del archivo. Esto es válido tanto para las construcciones lt como para las dos. También puede indicar qué tipo de contenido usar utilizando 39 Tipo 39, de una manera similar a: curl - F quotwebindex. htmlTypetext / htmlquot url curl - F quotnamedanielTypetext / fooquot url También puede cambiar explícitamente el campo de nombre de un archivo Cargar parte definiendo nombre de archivo, como este: curl - F quotfilelocalfilefilenamameinpostquot url Si filename / path contiene, o, debe estar entre comillas dobles como: curl - F filelocalfilefilenamenameinpost url curl - F filelocalfilefilenamameinpost url Tenga en cuenta que si un nombre de archivo / Citados por comillas dobles, cualquier comillas dobles o barra invertida dentro del nombre de archivo debe escaparse mediante barra invertida. Esta opción se puede utilizar varias veces. (HTTP) Similar a --form excepto que la cadena de valor para el parámetro nombrado se utiliza literalmente. Liderando 39 39 y 39 lt 39 caracteres, y el 39 Tipo 39 cadena en el valor no tienen un significado especial. Utilice esta opción de preferencia para --form si hay alguna posibilidad de que el valor de la cadena puede desencadenar accidentalmente las 39 39 o 39 lt 39 características de --form. Esta opción desactiva el parámetro quotURL globbing parserquot. Cuando establezca esta opción, puede especificar URL que contengan las letras sin tener que ser interpretadas por curl propio. Tenga en cuenta que estas letras no son contenidos de URL legales normales pero deben codificarse de acuerdo con el estándar URI. Cuando se utiliza, esta opción hará que todos los datos especificados con - d / --data o --data-binary se utilicen en una solicitud HTTP GET en lugar de la petición POST que de otra manera se utilizaría. Los datos se añadirán a la URL con un separador 39 39. Si se usa en combinación con - I. Los datos POST se añadirán a la URL con una solicitud HEAD. Si se utiliza esta opción varias veces, sólo se utiliza la primera. Esto se debe a que deshacer un GET no tiene sentido, pero entonces debería aplicar el método alternativo que prefiera. (HTTP) Encabezado extra para utilizar al obtener una página web. Puede especificar cualquier número de encabezados adicionales. Tenga en cuenta que si debe agregar un encabezado personalizado que tenga el mismo nombre que uno de los curl internos utilizaría, se utilizará el encabezado establecido externamente en lugar del interno. Esto le permite hacer cosas aún más difíciles que curl normalmente. Usted no debe reemplazar los encabezados establecidos internamente sin saber perfectamente lo que está haciendo. Elimine una cabecera interna dando un reemplazo sin contenido en el lado derecho del colon, como en: - H Host:. Si envía el encabezado personalizado sin valor, su encabezado debe finalizarse con un punto y coma, como - H X-Custom-Header para enviar X-Custom-Header:. Curl se asegurará de que cada encabezado que añadir / reemplazar se envían con el fin de línea adecuado marcador, por lo tanto, no debe agregar que como parte del contenido de la cabecera: no añadir nuevas líneas o retornos de carro que sólo lío cosas para usted . Consulte también las opciones - A / --user-agent y - e / --referer. Esta opción se puede utilizar varias veces para agregar / reemplazar / eliminar varios encabezados. (SCP / SFTP) Pasa una cadena que contiene 32 dígitos hexadecimales. La cadena debe ser la suma de comprobación MD5 de 128 bits de la clave pública de hosts remotos, curl rechazará la conexión con el host a menos que coincida con el md5sums. (Agregado en 7.17.1) (HTTP) Omita el encabezado Content-Length. Esto es particularmente útil para los servidores que ejecutan Apache 1.x, que informará de Contenido-Longitud incorrecto para archivos mayores de 2 gigabytes. (HTTP) Incluye el encabezado HTTP en la salida. El encabezado HTTP incluye cosas como el nombre del servidor, la fecha del documento, la versión HTTP y más. Realizar una operación utilizando una interfaz especificada. Puede introducir el nombre de la interfaz, la dirección IP o el nombre del host. Un ejemplo podría ser: curl --interface eth0: 1 netscape / Si esta opción se usa varias veces, se usará la última. (HTTP / FTP / FILE) Buscar el encabezado HTTP solamente. Los servidores HTTP cuentan con el comando HEAD que se utiliza para obtener nada más que el encabezado de un documento. Cuando se utiliza en un archivo FTP o FILE, Curl muestra el tamaño del archivo y la hora de la última modificación. (HTTP) Cuando se le dice a curl que lea las cookies de un archivo dado, esta opción hará que descarte todas las cookies quotsession. Esto tendrá básicamente el mismo efecto que si se inicia una nueva sesión. Los navegadores típicos siempre descartan las cookies de sesión cuando se cierran. (HTTP) Esta opción indica el - O. --remote-name para usar el nombre de archivo Content-Disposition especificado por el servidor en lugar de extraer un nombre de archivo de la URL. (SSL) Esta opción permite explícitamente curl para realizar quotinsecurequot conexiones SSL y transferencias. Se intenta que todas las conexiones SSL se aseguren utilizando el paquete de certificados de CA instalado de forma predeterminada. Todas las conexiones consideradas quotinsecurequot fallarán a menos que se use - k / --insecure. (SSL / SSH) Nombre de archivo de clave privada. Le permite proporcionar su clave privada en este archivo separado. Si se utiliza esta opción varias veces, se utilizará la última. (SSL) Tipo de archivo de clave privada. Especifique el tipo de clave privada proporcionada por usted. DER, PEM y ENG son compatibles. Si no se especifica, se supone PEM. Si se utiliza esta opción varias veces, se utilizará la última. (FTP) Habilite la autenticación y el uso de Kerberos. El nivel debe ser ingresado y debe ser uno de claro, seguro, confidencial o privado. Si utiliza un nivel que no sea uno de estos, en su lugar se utilizará privado. Esta opción requiere una biblioteca construida con soporte kerberos4 o GSSAPI (GSS-Negotiate). Esto no es muy común. Utilice - V. --versión para ver si su rizo lo soporta. Si se utiliza esta opción varias veces, se utilizará la última. Especifique el archivo de configuración para leer los argumentos curl de. El archivo de configuración es un archivo de texto en el que se pueden escribir argumentos de línea de comandos que luego se utilizarán como si estuvieran escritos en la línea de comandos real. Las opciones y sus parámetros deben especificarse en la misma línea del archivo de configuración. Si el parámetro debe contener espacios en blanco, el parámetro debe incluirse entre comillas. Si la primera columna de una línea de configuración es 39 39 caracteres, el resto de la línea se tratará como un comentario. Sólo escriba una opción por línea física en el archivo de configuración. Especifique el nombre de archivo como 39 - 39 para hacer curl leer el archivo de stdin. Tenga en cuenta que para poder especificar una URL en el archivo de configuración, debe especificarla utilizando la opción --url y no escribiendo la URL en su propia línea. Por lo tanto, podría ser similar a esto: Los nombres de opciones largas pueden darse opcionalmente en el archivo de configuración sin los guiones dobles iniciales. Cuando se invoca curl, siempre (a menos que se use - q) comprueba si hay un archivo de configuración predeterminado y lo usa si se encuentra. El archivo de configuración predeterminado se comprueba en los siguientes lugares en este orden: 1) curl intenta encontrar el quothome dirquot: Comprueba primero las variables de entorno CURLHOME y luego HOME. Si no lo hace, utiliza getpwuid () en sistemas unix-like (que devuelve el directorio de inicio dado el usuario actual en su sistema). En Windows, a continuación, comprueba la variable APPDATA o, como último recurso, el 39 USER-PROFILEApplication Data 39. 2) En Windows, si no hay ningún archivo curlrc en el directorio principal, comprueba si hay uno en el mismo directorio del ejecutable Curl se coloca. En sistemas unix-like, intentará cargar. Curlrc desde el directorio principal determinado. Esta opción se puede utilizar varias veces para cargar varios archivos de configuración. Esta opción establece el tiempo que una conexión debe permanecer inactiva antes de enviar sondas de mantenimiento y el tiempo entre sondas individuales de mantenimiento. Actualmente es efectivo en los sistemas operativos que ofrecen las opciones de socket TCPKEEPIDLE y TCPKEEPINTVL (es decir, Linux, AIX reciente, HP-UX y más). Esta opción no tiene efecto si se utiliza --no-keepalive. (Se agregó en 7.18.0) Si esta opción se utiliza varias veces, se utilizará la última. Si no se especifica, la opción predeterminada es 60 segundos. Especifique la velocidad de transferencia máxima que desea utilizar. Esta función es útil si tienes un tubo limitado y no quieres usar tu ancho de banda entero. La velocidad dada se mide en bytes / segundo, a menos que se añada un sufijo. Si agregamos 39 k 39 o 39 K 39 contamos el número como kilobytes. 39 m 39 o 39 M 39 lo hace megabytes mientras que 39 g 39 o 39 G 39 lo hace gigabytes. Ejemplos: 200K. 3m y 1G. La velocidad dada es la velocidad media contada durante toda la transferencia. Esto significa que curl podría utilizar velocidades de transferencia más altas en ráfagas cortas, pero con el tiempo no utiliza más de la tasa dada. Si también está usando la opción - Y / - speed-limit, esa opción tendrá prioridad y podría paralizar ligeramente la limitación de velocidad, para ayudar a mantener la lógica de límite de velocidad funcionando. Si se utiliza esta opción varias veces, se utilizará la última. (FTP) Al enumerar un directorio FTP, este cambio obliga a una vista de solo nombre. Especialmente útil si desea analizar a máquina el contenido de un directorio FTP ya que la vista de directorio normal no utiliza un aspecto o formato estándar. Esta opción hace que se envíe un comando FTP NLST. Algunos servidores FTP lista sólo los archivos en su respuesta a NLST que no incluyen subdirectorios y enlaces simbólicos. Establezca un número o rango preferido de números de puerto local para usar en la (s) conexión (es). Tenga en cuenta que los números de puerto por naturaleza son un recurso escaso que estará ocupado a veces por lo que la configuración de este rango a algo demasiado estrecho podría causar fallos innecesarios en la configuración de la conexión. (HTTP / HTTPS) Si el servidor informa que la página solicitada se ha desplazado a otra ubicación (indicada con un encabezado Location: y un código de respuesta 3XX), esta opción hará que se vuelva a enrollar la solicitud en el nuevo lugar. Si se utiliza junto con - i / --include o - I / --head. Se mostrarán los encabezados de todas las páginas solicitadas. Cuando se utiliza la autenticación, curl sólo envía sus credenciales al host inicial. Si un redireccionamiento toma curl a un anfitrión diferente, won39t ser capaz de interceptar el userpassword. Vea también --location-trusted sobre cómo cambiar esto. Puede limitar la cantidad de redirecciones a seguir utilizando la opción --max-redirs. Cuando curl sigue un redireccionamiento y la solicitud no es un GET (por ejemplo POST o PUT), hará la siguiente petición con un GET si la respuesta HTTP fue 301, 302 o 303. Si el código de respuesta fue cualquier otro 3xx Código, curl volverá a enviar la siguiente solicitud utilizando el mismo método no modificado. Añada esta opción a cualquier línea de comandos curl normal y obtendrá un código fuente C que use libcurl en el archivo que haga el equivalente a lo que hace su operación de línea de comandos. Debe tenerse en cuenta que esta opción es extremadamente impresionante. Si esta opción se utiliza varias veces, se utilizará el último nombre de archivo dado. (Añadido en 7.16.1) (HTTP / HTTPS) Similar a - L / - ubicación. Pero permitirá el envío de la contraseña de nombre a todos los hosts que el sitio puede redirigir a. Esto puede o no introducir una infracción de seguridad si el sitio redirecciona a un sitio al que debe enviar su información de autenticación (que es un texto sin formato en el caso de la autenticación HTTP básica). Especifique el tamaño máximo (en bytes) de un archivo para descargar. Si el archivo solicitado es mayor que este valor, la transferencia no se iniciará y curl volverá con el código de salida 63. NOTA: El tamaño del archivo no siempre se conoce antes de descargar y para estos archivos esta opción no tiene ningún efecto incluso si el archivo La transferencia termina siendo mayor que este límite dado. Esto se refiere a transferencias FTP y HTTP. Tiempo máximo en segundos que permite que se realice toda la operación. Esto es útil para evitar que los trabajos por lotes permanezcan suspendidos durante horas debido a la lentitud de las redes o de los vínculos que se están produciendo. Consulte también la opción --connect-timeout. Si se utiliza esta opción varias veces, se utilizará la última. (SMTP) Especifique una dirección única. Esto se utilizará para especificar la dirección de autenticación (identidad) de un mensaje enviado que se retransmite a otro servidor. Esta opción puede indicar curl para analizar y procesar un URI dado como archivo Metalink (ambos versión 3 y 4 (RFC 5854) son compatibles) y hacer uso de los espejos enumerados dentro para failover si hay errores (como el archivo o servidor no Disponibles). También verificará el hash del archivo después de completar la descarga. El archivo Metalink se descarga y procesa en memoria y no se almacena en el sistema de archivos local. Ejemplo de uso de un archivo de Metalink remoto: curl - metalink example / example. metalink Para usar un archivo de Metalink en el sistema de archivos local, use el protocolo FILE (file: //): curl - metalink file: //example. metalink Por favor Tenga en cuenta que si el protocolo FILE está desactivado, no hay manera de utilizar un archivo de Metalink local en el momento de escribir este documento. Observe también que si - metalink y --include se usan juntos, --include será ignorado. Esto se debe a que incluir encabezados en la respuesta romperá el analizador de Metalink y si los encabezados se incluyen en el archivo descrito en el archivo de Metalink, la comprobación de hash fallará. (Se agrega en 7.27.0, si se construye contra la biblioteca libmetalink.) Hace que Curl escanea el archivo. netrc en el directorio personal del usuario para el nombre de inicio de sesión y la contraseña. Esto se utiliza típicamente para ftp en unix. Si se utiliza con http, curl habilitará la autenticación del usuario. Consulte la documentación de netrc (4) o ftp para obtener detalles sobre el formato de archivo. Curl no se quejará si ese archivo no tiene los permisos correctos (no debe ser mundo ni grupo legible). La variable de entorno quot HOME quot se utiliza para encontrar el directorio de inicio. Un ejemplo rápido y muy simple de cómo configurar un. netrc para permitir curl a ftp a la máquina host. domain con nombre de usuario 39myself39 y 39secret39 contraseña debe ser similar a: host. domain máquina de inicio de sesión contraseña propia secreto Si esta opción se utiliza dos veces , El segundo volverá a deshabilitar el uso de netrc. (HTTP) Habilita la autenticación GSS-Negotiate. El método GSS-Negotiate fue diseñado por Microsoft y se utiliza en sus aplicaciones web. Se entiende principalmente como un soporte para la autenticación Kerberos5, pero también puede utilizarse junto con otros métodos de autenticación. Esta opción requiere que la biblioteca curl se construya con soporte GSSAPI. Esto no es muy común. Utilice - V / --version para ver si su versión admite GSS-Negociar. Al utilizar esta opción, también debe proporcionar una opción - u / --user falsa para activar el código de autenticación correctamente. El envío de un 39 - u: 39 es suficiente como el nombre de usuario y la contraseña de la opción - u aren39t realmente utilizado. Si esta opción se utiliza varias veces, las siguientes ocurrencias no hacen ninguna diferencia. Desactiva el uso de mensajes keepalive en la conexión TCP, ya que por defecto, Curl los habilita. Tenga en cuenta que este es el nombre de opción negado documentado. Por lo tanto, puede utilizar - keepful para hacer cumplir keepalive. (SSL) Deshabilita el uso de caché de caché de ID de sesión SSL. De forma predeterminada, todas las transferencias se realizan utilizando la caché. Tenga en cuenta que, si bien nada debería resultar herido al intentar reutilizar las identificaciones de sesión SSL, parece haber implementaciones de SSL rotas en la naturaleza que pueden requerir que deshabilite esto para que tenga éxito. (Se agregó en 7.16.0) Tenga en cuenta que este es el nombre de opción negado documentado. Así, puede utilizar --sessionid para reforzar la caché de ID de sesión. Lista de hosts separados por comas que no utilizan un proxy, si se especifica uno. El único comodín es un solo carácter, que coincide con todos los hosts, y efectivamente deshabilita el proxy. Cada nombre de esta lista coincide como un dominio que contiene el nombre de host o el propio nombre de host. Por ejemplo, local coincide con local. Local: 80. Y locales. Pero no local. (Añadido en 7.19.4). Deshabilita el almacenamiento en búfer del flujo de salida. En situaciones normales de trabajo, curl utilizará un flujo de salida de buffer estándar que tendrá el efecto de que dará salida a los datos en trozos, no necesariamente exactamente cuando los datos lleguen. El uso de esta opción desactivará el almacenamiento en búfer. Tenga en cuenta que este es el nombre de opción negado documentado. Por lo tanto, puede utilizar --buffer para hacer cumplir el almacenamiento en búfer. Esta opción es similar a - netrc. Excepto que usted proporciona la ruta de acceso (absoluta o relativa) al archivo netrc que curl debe usar. Sólo puede especificar un archivo netrc por invocación. Si se proporcionan varias opciones de archivo - netrc, sólo se utilizará la última. (Añadida en 7.21.5) Esta opción anula cualquier uso de - netrc, ya que son mutuamente excluyentes. También se ajustará a --netrc-opcional si se especifica. (HTTP) Le indica a curl que respete la RFC 2616 / 10.3.2 y que no convierta peticiones POST en solicitudes GET cuando siga una redirección 301. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using - L . --location (Added in 7.17.1) ( HTTP ) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET requests when following a 302 redirection. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using - L . --location (Added in 7.19.1) ( HTTP ) Tells curl to respect RFC 2616/10.3.2 and not convert POST requests into GET requests when following a 303 redirection. The non-RFC behaviour is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using - L . --location (Added in 7.26.0) Tells curl to use the listed protocols for its initial retrieval. Protocols are evaluated left to right, are comma separated, and are each a protocol name or all , optionally prefixed by zero or more modifiers. Available modifiers are: Permit this protocol in addition to protocols already permitted (this is the default if no modifier is used). Deny this protocol, removing it from the list of protocols already permitted. Permit only this protocol (ignoring the list already permitted), though subject to later modification by subsequent entries in the comma separated list. --proto - ftps uses the default protocols, but disables ftps --proto - all, https, http only enables http and https --proto http, https also only enables http and https Unknown protocols produce a warning. This allows scripts to safely rely on being able to disable potentially dangerous protocols, without relying upon support for that protocol being built into curl to avoid an error. This option can be used multiple times, in which case the effect is the same as concatenating the protocols into one instance of the option. (Added in 7.20.2) Specify user and password to use for server authentication. Overrides - n . --netrc and --netrc-optional . If you just give the user name (without entering a colon) curl will prompt for a password. If you use an SSPI-enabled curl binary and do NTLM autentication, you can force curl to pick up the user name and password from your environment by specifying a single colon with this option: quot - u : quot. If this option is used several times, the last one will be used. Specify user and password to use for proxy authentication. If you use an SSPI-enabled curl binary and do NTLM autentication, you can force curl to pick up the user name and password from your environment by specifying a single colon with this option: quot - U : quot. If this option is used several times, the last one will be used. Specify a URL to fetch. This option is mostly handy when you want to specify URL(s) in a config file. This option may be used any number of times. To control where this URL is written, use the - o . --output or the - O . --remote-name options . Makes the fetching more verbose/talkative. Mostly usable for debugging. Lines starting with 39 gt 39 means quotheader dataquot sent by curl . 39 lt 39 means quotheader dataquot received by curl that is hidden in normal cases and lines starting with 39 39 means additional info provided by curl . Note that if you only want HTTP headers in the output, - i . --include might be option you39re looking for. If you think this option still doesn39t give you enough details, consider using --trace or --trace-ascii instead. This option overrides previous uses of --trace-ascii or --trace . Use - s . --silent to make curl quiet. Defines what to display on stdout after a completed and successful operation. The format is a string that may contain plain text mixed with any number of variables. The string can be specified as quot string quot, to get read from a particular file you specify it quot filename quot and to tell curl to read the format from stdin you write quot - quot. The variables present in the output format will be substituted by the value or text that curl thinks fit, as described below. All variables are specified like and to output a normal you just write them like . You can output a newline by using n . a carriage return with r and a tab space with t . NOTE: The - letter is a special letter in the win32-environment, where all occurrences of must be doubled when using this option. Available variables are at this point: The Content-Type of the requested document, if there was any. The ultimate filename that curl writes out to. This is only meaningful if curl is told to write to a file with the --remote-name or --output option. Its most useful in combination with the --remote-header-name option. (Added in 7.25.1) The initial path curl ended up in when logging on to the remote FTP server. (Added in 7.15.4) The numerical response code that was found in the last retrieved HTTP(S) or FTP(s) transfer. In 7.18.2 the alias responsecode was added to show the same info. The numerical code that was found in the last response (from a proxy) to a curl CONNECT request. (Added in 7.12.4) The IP address of the local end of the most recently done connection - can be either IPv4 or IPv6 (Added in 7.29.0) The local port number of the most recently done connection (Added in 7.29.0) Number of new connects made in the recent transfer. (Added in 7.12.3) Number of redirects that were followed in the request. (Added in 7.12.3) When an HTTP request was made without - L to follow redirects, this variable shows the actual URL a redirect would take you to. (Added in 7.18.2) The remote IP address of the most recently done connection - can be either IPv4 or IPv6 (Added in 7.29.0) The remote port number of the most recently done connection (Added in 7.29.0) The total amount of bytes that were downloaded. The total amount of bytes of the downloaded headers. The total amount of bytes that were sent in the HTTP request. The total amount of bytes that were uploaded. The average download speed that curl measured for the complete download. Bytes per second. The average upload speed that curl measured for the complete upload. Bytes per second. The result of the SSL peer certificate verification that was requested. 0 means the verification was successful. (Added in 7.19.0) The time, in seconds, it took from the start until the SSL/SSH/etc connect/handshake to the remote host was completed. (Added in 7.19.0) The time, in seconds, it took from the start until the TCP connect to the remote host (or proxy) was completed. The time, in seconds, it took from the start until the name resolving was completed. The time, in seconds, it took from the start until the file transfer was just about to begin. This includes all pre-transfer commands and negotiations that are specific to the particular protocol(s) involved. The time, in seconds, it took for all redirection steps include name lookup, connect, pretransfer, and transfer before the final transaction was started. timeredirect shows the complete execution time for multiple redirections. (Added in 7.12.3) The time, in seconds, it took from the start until the first byte was just about to be transferred. This includes timepretransfer and also the time the server needed to calculate the result. The total time, in seconds, that the full operation lasted. The time will be displayed with millisecond resolution. The URL that was fetched last. This is most meaningful if youve told curl to follow location: headers. - x . --proxy ltprotocol://user:passwordproxyhost:portgt Use the specified HTTP proxy. If the port number is not specified, it is assumed at port 1080. This option overrides existing environment variables that set the proxy to use. If theres an environment variable setting a proxy, you can set proxy to to override it. All operations that are performed over an HTTP proxy will transparently be converted to HTTP. It means that certain protocol specific operations might not be available. This is not the case if you can tunnel through the proxy, as one with the - p . --proxytunnel option. User and password that might be provided in the proxy string are URL decoded by curl . This allows you to pass in special characters such as by using 40 or pass in a colon with 3a. The proxy host can be specified the exact same way as the proxy environment variables, including the protocol prefix () and the embedded user password. From 7.21.7, the proxy string may be specified with a protocol:// prefix to specify alternative proxy protocols. Use socks4:// . socks4a:// . socks5:// or socks5h:// to request the specific SOCKS version to be used. No protocol specified, and all others will be treated as HTTP proxies. If this option is used several times, the last one will be used. ( HTTP ) Specifies a custom request method to use when communicating with the HTTP server. The specified request will be used instead of the method otherwise used (which defaults to GET). Read the HTTP 1.1 specification for details and explanations. Common additional HTTP requests include PUT and DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE, and more. Normally you dont need this option. All sorts of GET, HEAD, POST, and PUT requests are rather invoked by using dedicated command line options. This option only changes the actual word used in the HTTP request, it does not alter the way curl behaves. So for example if you want to make a proper HEAD request, using - X HEAD will not suffice. You need to use the - I . --head option. ( FTP ) Specifies a custom FTP command to use instead of LIST when doing file lists with FTP. If this option is used several times, the last one will be used. When saving output to a file, this option tells curl to store certain file metadata in extended file attributes. Currently, the URL is stored in the xdg. origin. url attribute and, for HTTP, the content type is stored in the mimetype attribute. If the file system does not support extended attributes, a warning is issued. If a download is slower than speed-limit bytes per second during a speed-time period, the download gets aborted. If speed-time is used, the default speed-limit will be 1 unless set with - Y . This option controls transfers and thus will not affect slow connects etc. If this is a concern for you, try the --connect-timeout option. If this option is used several times, the last one will be used. If a download is slower than this given speed, in bytes per second, for speed-time seconds it gets aborted. speed-time is set with - y and is 30 if not set. If this option is used several times, the last one will be used. - z . --time-cond ltdate expressiongtltfilegt (HTTP) Request a file that has been modified later than the given time and date, or one that has been modified before that time. The ltdate expressiongt can be all sorts of date strings or if it doesn39t match any internal ones, it is taken as a filename and tries to get the modification date (mtime) from ltfilegt instead. See the curlgetdate man pages for date expression details. Start the date expression with a dash (-) to make it request for a document that is older than the given date/time, default is a document that is newer than the specified date/time. If this option is used several times, the last one will be used. Set maximum number of redirection-followings allowed. If - L / --location is used, this option can be used to prevent curl from following redirections quotin absurdumquot. By default, the limit is set to 50 redirections. Set this option to -1 to make it limitless. If this option is used several times, the last one will be used. curl examples Fetch the file index. htm from wwwputerhope using the HTTP protocol, and display it to standard output. This is essentially the same as viewing the source of the webpage the raw HTML will be displayed. Fetch the same file as above, but redirect the output to a file, index. htm . in the current directory. Fetch the same file as above, and output to a file with the same name ( index. htm ) in the current directory, this time using the curl function - O . Same as above, but this time, limit the download speed to (an average speed of) 1,234 bytes/second. Same as above, but this time, display a progress bar (the - option) instead of the numerical progress meter. Related commands wget mdash Download files via HTTP or FTP.

Comments

Popular Posts