2009-05-04 7 views
1

私は(ラインが読みやすくするために壊れた)コマンドを発行しています:curlがHTTP PUTのメッセージ本文の前にコマンドラインを送信するのはなぜですか?

curl -H"X-RequestIsAbsolutePath: F" \ 
-T /tmp/out \ 
-H'Content-Type: application/xml' \ 
"http://localhost:8182/metadata/036-Rotated.JPG" 

私はXMLのメッセージボディを送っています。私は、プロローグで許可されていないコンテンツについてサーバー上のXMLパーサから苦情を受け取ります。私は、コマンドラインに--trace-ACIIオプションを追加して参照してください。

=> Send header, 270 bytes (0x10e) 
0000: PUT /metadata/036-Rotated.JPG HTTP/1.1 
0028: User-Agent: curl/7.19.4 (i386-apple-darwin9.6.0) libcurl/7.19.4 
0068: OpenSSL/0.9.8i zlib/1.2.3 
0083: Host: localhost:8182 
0099: Accept: */* 
00a6: X-RequestIsAbsolutePath: F 
00c2: Content-Type: application/xml 
00e1: Content-Length: 235 
00f6: Expect: 100-continue 
010c: 
== Info: Done waiting for 100-continue 
=> Send data, 235 bytes (0xeb) 
0000: curl -v -H"X-RequestIsAbsolutePath: F" "http://localhost:8182/me 
0040: tadata/036-Original.JPG".<metadata>. <Core>. <ImageOrientati 
0080: on editable="1" type="unsignedShort">.  <value raw="3"/>. 
00c0: </ImageOrientation>. </Core>.</metadata>.

はなぜカールメッセージ本文の一部として、コマンドライン自体を送信していますか?もちろん、XMLパーサーは文句を言うでしょう。それをやめて、-Tオプションの引数として渡されたファイルの内容だけを送るようにするにはどうすればよいですか?

FYI:サーバー上で送信された生のテキストを取得しました。はい、実際にコマンドラインが送信されています。参考2:Mac OS Xで最新のカール(7.19.4)を使用しています。

答えて

2

なぜカールがメッセージ本体をメッセージ本体の一部として送信していますか?

これはありません。あなたは何とかコマンドを/tmp/outに入れていないと確信していますか?

curlはasciiトレースに見られるようにコマンドラインにアクセスすることさえありません。引用符のようなものは、プログラムに渡される前にシェルによって解釈されるからです。

+0

Uhm、yeah - コマンドがファイルにありました。 OK、今は馬鹿だと思う。 :( –

+0

誰にも起こります!) – Miles

関連する問題