2014-04-30 2 views
1

curl을 사용하여 xml 파일 (utf-16로 인코딩 됨)을 REST 서비스에 게시하려고합니다. REST 서비스는 'multipart/form-data'컨텐츠 유형을 예상합니다.curl - multipart/form-data를 사용하여 파일 올리기

컬 스크립트 : 컬 -k -i -H "콘텐츠 유형 = 다중/폼 데이터"-F "[email protected]; 유형 = 텍스트/XML"-X POST -u :

그러나 스크립트를 실행하는 동안 500 Internal Server 오류가 발생합니다.

응답 : < =에 수신 된 헤더, 23 바이트 (0x17을) 0000 : HTTP/1.1 100 계속 < =에 수신 된 헤더, 36 바이트 (0x24, 페이) 0000 : HTTP/1.1 500 내부 서버 오류

크롬을 통해 '우편 배달부 응용 프로그램'에 추가하면 성공적으로 XML을 REST 서비스에 게시 할 수 있습니다.

500 오류를 일으키는 문제를 파악할 수 없습니다. 이 문제를 해결할 때 도와주십시오. 명령 줄에서 일부 nitpicks

답변

1

먼저

감사 Anooja는 :

  1. 사용자가 제공하는 컨텐츠 유형 헤더가 잘못, 이름이/내용은 콜론으로 구분해야합니다. -F는 -F 그런 다음 이미

을 게시물을 사용하므로

  • 은 "-X POST"자체 콘텐츠 형식이 불필요한 것을 설정으로
  • 은 당신은 것을 -H을 필요가 없습니다 명령 줄에 --trace 또는 --trace-ascii을 추가하여 전체 요청을 캡처 한 다음 크롬으로 작업 요청 전체를 캡처 한 다음 비교합니다. 차이점이있는 곳에서는 curl 명령 줄을 브라우저 버전과 비슷하게 조정합니다. 그것이 작동 할 때까지 반복하십시오.

  • +0

    Daniel, 나는 아래의 curl 명령을 시도했지만 여전히 500 서버 오류가 발생했습니다. curl -k -i --trace-ascii dump.txt -F '[email protected]; type = text/plain'-u : 또한 curl과 postman을 사용한 요청도 동일하게 보입니다. 아래에 다른 의견으로 요청을 붙여 넣으십시오. 무슨 문제인지 알려주세요. – anoojag

    +0

    컬 요청 : 013e : 컨텐츠 유형 : multipart/form-data; 경계 = ------------------ 017e : -------- d485140609e1 0194 : <= Recv 헤더, 23 바이트 (0x17) 0000 : HTTP /1.1 100 계속 => 데이터 보내기, 138 바이트 (0x8a) 0000 : ------------------------------ d485140609e1 002c : 내용 - 처분 : 양식 - 데이터; name = "file"; 파일 이름 = "file.txt를" 006e : 콘텐츠 유형 : 텍스트/일반 바우 요청 : 콘텐츠 형식 : 다중/폼 데이터 캐시 제어 : 노 캐시 ---- WebKitFormBoundaryE19zNvXGzXaLvS5C 내용 - 처리 : form-data; name = "file"; 파일 이름 = "file.txt" 콘텐츠 형식 : 텍스트/일반 ---- WebKitFormBoundaryE19zNvXGzXaLvS5C – anoojag