O que esse comando curl faz?

0

Sou muito novo no Unix e não consigo descobrir o que esse comando faz. Pelo que entendi, ele envia uma solicitação HTTP POST para um site. Eu não sei exatamente o que cada linha deve fazer. Alguém pode gentilmente me explicar a função de cada linha?

Aqui está o comando:

curl http://www.example.com/xmlrpc.php -d 
    '
    pingback.ping
    http://destination.site.com/

    http://www.example.com/
    '
    
por Sedulous 27.01.2014 / 04:27

1 resposta

1

Este é provavelmente um site do Wordpress. O script xmlrpc.php é um script PHP que fornece chamadas de procedimento remoto (daí o rpc no nome) que permitem executar coisas no servidor. Estes são apenas como métodos em uma classe.

Exemplos

<?xml version="1.0"?>
<methodCall>
   <methodName>pingback.ping</methodName>
   <params>
      <param>
        <value><string>http://.source./</string></value>
      </param>
      <param>
        <value><string>http://.target./</string></value>
      </param>
   </params>
</methodCall>

Quando você chama o URL em seu exemplo, está chamando o método pingback.ping e fornecendo as URLs após a chamada como argumentos para esse método. O primeiro URL é o URL de origem do pingback, enquanto o segundo é o URL de destino.

switch -d do curl

Da página de manual de curl :

-d/--data <data>
      (HTTP) Sends the specified data in a POST request to the HTTP server, 
      in a way that can emulate as if a user has filled in a HTML form and 
      pressed the submit  button.  Note  that  the  data  is  sent exactly 
      as specified with no extra processing (with all newlines cut off).  
      The data is expected to be "url-encoded". This will cause curl to pass 
      the data to the server using the content-type 
      application/x-www-form-urlencoded. Compare to -F/--form. If this 
      option is used more than once on the same command line, the data 
      pieces specified will be merged together with a separating &-letter. 
      Thus, using ’-d name=daniel -d skill=lousy’ would generate a post 
      chunk that looks like ’name=daniel&skill=lousy’.

      If  you  start  the  data  with  the  letter @, the rest should be a 
      file name to read the data from, or - if you want curl to read the 
      data from stdin.  The contents of the file must already be 
      url-encoded. Multiple files can also be specified. Posting data from a 
      file named ’foobar’ would thus be done with --data @foobar".

      To post data purely binary, you should instead use the --data-binary 
      option.

      -d/--data is the same as --data-ascii.

      If this option is used several times, the ones following the first 
      will append data.
    
por 27.01.2014 / 05:02

Tags