2012-02-24 18 views
6

ダイジェストこのcurlコマンドを説明してください:のcURL - - コマンド

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 

<記号は何を意味するのでしょうか?私が理解

[--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 

これは私が@ -d得ることはありませんおそらく何です - URL < ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {ユーザー名} /広告/ {EXT-参照-id} <私が見つけた何ad.xml]

-d、--data

(HTTP)ユーザーがHTML フォームに入力して送信ボタンを押したときにブラウザが行うのと同じ方法で、POST要求の指定されたデータをHTTPサーバー に送信します。これにより、curlはコンテンツタイプ application/x-www-form-urlencodedを使用して データをサーバーに渡します。 -F、--formと比較してください。

-d、--dataは--data-asciiと同じです。純粋にバイナリを投稿するには、代わりに--data-binaryオプションを使用する必要があります。フォームフィールドの 値をURLエンコードするには--data-urlencodeを使用します。

これらのオプションのいずれかを同じコマンド ラインで複数回使用されている場合は、指定されたデータ片が& -symbolを分離 と一緒にマージされます。したがって、 '-d name = daniel -d skill = lousy'を使用すると、 は 'name = daniel & skill = lousy'のようなポストチャンクを生成します。

@を使用してデータを開始する場合、残りのデータは という名前のファイルである必要があります。または、curlがデータをstdinから読み取るようにしたい場合。ファイルの内容は、すでにURLエンコードされている必要があります。 複数のファイルも指定できます。 'foobar'という名前のファイルからデータを投稿するには--data @foobarを使用します。

大手質問: 誰かがちょうどCFHTTPし、これを変換する方法を知っている場合は、ダイジェスト認証を気にいけないし、要求が認証をダイジェストで作業していると仮定します。

+0

なぜこのタグはcoldfusionですか? –

+0

@Mikeは私がcfhttpに言及した主な質問です。 – Vlad

答えて

1

"-d @"オプションは、curlがstdinから読み込んだデータとともにPOST要求を送信することを意味します。

'<'演算子は、ファイルをstdinに送るようにシェルに指示します。

代わりに-d @ ad.xmlを実行し、stdinをまったく使用しないことで、より簡単なコマンドラインを作成できます。

+1

cfという言葉では、 ' – Leigh

関連する問題