/ / Czy curl potrzebuje specjalnych parametrów do wymuszenia kodowania / kodowania? - usługi internetowe, curl, utf-8, kodowanie znaków

Czy curl wymaga specjalnych parametrów do wymuszenia kodowania / kodowania? - usługi internetowe, curl, utf-8, kodowanie znaków

Używam polecenia curl, aby wysłać duży plik (100 + MB) do usługi sieciowej. Zauważam, że tylko wtedy, gdy wyślę plik do usługi sieciowej za pomocą curl plik zostanie zmanipulowany i dane zostaną utracone.

Oto polecenie, którego używam do wysłania pliku:

curl -v --raw -X POST  -H "Transfer-Encoding: chunked" -H "Content-Type: text/xml; charset=utf-8" -d @medline16n0736.xml "http://localhost:2323/TestWebService"

Czy czegoś brakuje? Myślałem, że muszę to powiedzieć text/xml i charset=utf-8 utrzyma go utf-8 raz odebrany przez serwis internetowy.

Odpowiedzi:

1 dla odpowiedzi № 1

Pytasz curl, aby opublikować plik XML za pomocą -d opcja, która opublikuje plik tak, jakby był przesyłany za pośrednictwem formularza internetowego HTTP application/x-www-webform-urlencoded format. Aby opublikować plik samodzielnie, użyj znaku -T zamiast tego opcja. Ponadto używasz --raw opcja, która wyłączy obsługę kodowania transferu HTTP, nawet jeśli wysyłasz wiadomość Transfer-Encoding: chunked nagłówek. Usunąć --raw i -T wykryje nagłówek, aby włączyć chunking.

Pytasz także curl, aby wysłać wiadomość Content-Type nagłówek informujący WebService, że przesłane dane są zakodowane w formacie utf-8. Twoim obowiązkiem jest upewnić się, że plik XML jest tak właściwie kodowane utf-8. Curl nie sprawdzi tego dla ciebie.