Por que o comando curl recebe urls com parâmetros como entrada

2

Eu sei tanto wget quanto curl . Sendo curioso eu li um pouco sobre suas diferenças .

Eu recentemente tentei usar o curl com um URL que tem parâmetros e ele descarta os parâmetros do URL. A consequência é: não recebo a página que solicitei.

Então, minha pergunta foi: por que o comando curl faz isso?

Editar:

Eu tentei seguir

# bare
$ curl -s http://tag.mobitrans.fr/horaires/index.asp?rub_code=23&lign_id=4&sens=2

# double quotes
$ curl -s "http://tag.mobitrans.fr/horaires/index.asp?rub_code=23&lign_id=4&sens=2"

# single quotes
$ curl -s 'http://tag.mobitrans.fr/horaires/index.asp?rub_code=23&lign_id=4&sens=2'

# escaping special chars
$ curl -s http://tag.mobitrans.fr/horaires/index.asp?rub_code=23\&lign_id=4\&sens=2

FWIW: curl 7.34.0 (x86_64-apple-darwin13.0.0) libcurl/7.34.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.26

    
por Matthieu Riegler 19.02.2014 / 23:31

1 resposta

4

Por favor, poste o comando que você usou? É provável que você só tenha precisado escapar da URL porque tinha caracteres especiais no shell, como apersands ( & ).

Exemplo

$ curl http://tools.pingdom.com/fpt/#!/dnmIG9/www.google.com
bash: !/dnmIG9/www.google.com: event not found

No entanto, se eu colocar o URL entre aspas simples:

$ curl 'http://tools.pingdom.com/fpt/#!/dnmIG9/www.google.com' |& head -10
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">-->
<!DOCTYPE html>
<head itemscope itemtype="http://schema.org">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="description" content="Use this free Website Speed Test to analyze the load speed of your websites, and learn how to make them faster.">
    <!-- Google PlusOne -->

Outras questões

Às vezes, é necessário ter cookies locais ou você precisa ser um determinado tipo de navegador ou até mesmo parecer estar vindo de um determinado URL dentro do site. Nesses casos, muitas vezes você pode passar por eles usando switches adicionais para curl . O mesmo pode ser feito com wget , a propósito.

    
por 19.02.2014 / 23:47

Tags