Pourquoi curl envoie-t-il la ligne de commande avant le corps du message dans un PUT HTTP?

StackOverflow https://stackoverflow.com/questions/821389

  •  03-07-2019
  •  | 
  •  

Question

J'émets la commande (ligne brisée pour la lisibilité):

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

J'envoie un corps de message XML. Je reçois une plainte de l'analyseur XML sur le serveur à propos du contenu non autorisé dans le prologue. J'ai ajouté une option --trace-acii à la ligne de commande et voir:

=> 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>.

Pourquoi curl envoie-t-il la ligne de commande elle-même dans le corps du message? Bien sûr, l'analyseur XML se plaindra. Comment faire pour que curl arrête de faire cela et envoie uniquement le contenu du fichier passé en argument à l'option -T?

FYI: J'ai capturé le texte brut envoyé sur le serveur et, oui, la ligne de commande est réellement envoyée. FYI # 2: J'utilise la dernière version de curl (7.19.4) sur Mac OS X.

Était-ce utile?

La solution

  

Pourquoi curl envoie-t-il la ligne de commande elle-même dans le corps du message?

Ce n'est pas. Êtes-vous sûr de ne pas avoir mis la commande dans / tmp / out ?

curl n'a même pas accès à la ligne de commande, comme le montre votre trace ascii, car des éléments tels que les guillemets sont interprétés par le shell avant d'être passés au programme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top