2012-02-24 16 views
6

Si prega di spiegare questo comando ricciolo digerire:cURL - - comando

curl --digest \ 
    -u{username}:{password} \ 
    -v \ 
    -X PUT \ 
    -H 'Expect: ' \ 
    -H 'Content-type: application/xml' \ 
    -d @- \ 
    http://webapi.ebayclassifieds.com/webapi/partners/{username}/ads/{ext-reference-id} \ 
     < ad.xml 

Cosa significa il segno <?

quello che ho capito:

[--digest] its a digest authentication 
[-u{username}:{password}] obviously username and password 
[-X PUT] method="put" 
[-H 'Expect: '] header = 'Expect: ' 
[-H 'Content-type: application/xml'] additional header 

Questo è probabilmente ciò che non capisco -d @ - url < ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {username}/ads/{ext-reference -id} < ad.xml]

Quello che ho trovato:

-d, --data

(HTTP) Invia i dati specificati in una richiesta POST al server HTTP, nello stesso modo in cui un browser esegue quando un utente ha compilato un modulo HTML e preme il pulsante di invio. Ciò causerà il ricciolo di passare i dati al server utilizzando il tipo di contenuto application/x-www-form-urlencoded. Confronta con -F, --form.

-d, --data è uguale a --data-ascii. Per pubblicare dati puramente binari, dovresti invece usare l'opzione --data-binary. Per codificare tramite URL il valore di un campo modulo, è possibile utilizzare --data-urlencode.

Se una qualsiasi di queste opzioni viene utilizzato più volte sulla stessa riga di comando , i pezzi di dati specificati saranno fusi insieme con un separazione & -symbol. Quindi, usando '-d name = daniel -d skill = lousy' sarebbe generare un blocco di post che assomiglia a 'name = daniel & skill = lousy'.

Se si avvia i dati con la lettera @, il resto deve essere un nome file per leggere i dati oppure, se si desidera arricciare, leggere i dati da stdin. Il contenuto del file deve già essere codificato tramite URL. È inoltre possibile specificare più file. Pubblicare i dati da un file chiamato 'foobar' sarebbe quindi fatto con --data @foobar.

domanda d'esecuzione: Se qualcuno sa come tradurre questo per cfhttp solo non vi dispiace l'autenticazione digest e assumere richiesta sta lavorando con autenticazione Digest.

+0

perché è etichettato come coldfusion? –

+0

@Mike nella domanda principale che ho citato cfhttp. – Vlad

risposta

1

L'opzione "-d @ -" significa che arricciamento invierà una richiesta POST con i dati letti da stdin.

L'operatore '<' indica alla shell di alimentare un file su stdin.

È possibile creare una riga di comando più semplice facendo invece -d @ ad.xml e non utilizzare affatto stdin.

+1

In termini cf, puoi pubblicare una stringa xml usando '' – Leigh