programing

절대 경로 또는 상대 경로와 함께 컬 요청으로 json 파일 전송

powerit 2023. 3. 29. 21:55
반응형

절대 경로 또는 상대 경로와 함께 컬 요청으로 json 파일 전송

현재 디렉토리의 파일이 아닌 파일을 경로와 함께 지정하는 -d 옵션을 사용하여 curl 명령어를 보내는 방법을 알고 싶습니다.

로컬 디르에서 json 파일을 사용하여 앱을 테스트하려고 하면 다음과 같은 메시지가 나타납니다.앱도 저도 행복합니다.

curl -XPOST -H 'Content-Type:application/json' -d @all_fields.json http://testcomp.lab.net:8080/stats -v -s
* About to connect() to testcomp.lab.net port 8080
*   Trying 10.93.2.197... connected
* Connected to testcomp.lab.net (10.93.2.197) port 8080
> POST /stats HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: testcomp.lab.net:8080
> Accept: */*
> Content-Type:application/json
> Content-Length: 2882
> Expect: 100-continue
> 
< HTTP/1.1 100 Continue
HTTP/1.1 200 OK
< Content-Length: 0
* Connection #0 to host testcomp.lab.net left intact
* Closing connection #0

다른 디렉터리에 있는 json 파일을 지정하면 다음과 같이 표시됩니다.

curl -XPOST -H 'Content-Type:application/json' -d @json/all_fields.json http://testcomp.lab.net:8080/stats -v -s
"Invalid json for Java type interface java.util.List"
Warning: Couldn't read data from file "json/all_fields.json", this makes an 
Warning: empty POST.

<snip snip>
<snip snip>

< HTTP/1.1 400 Bad Request
< Content-Type: application/json
< Transfer-Encoding: chunked
* Connection #0 to host testcomp.lab.net left intact
* Closing connection #0

man 페이지에는 데이터로 전달된 파일의 디렉토리를 지정하기 위한 curl이 없습니다.유감스럽게도 로컬 디렉토리의 파일로 제한되어 있습니까?아니면 다른 디렉토리의 파일을 지정할 수 있는 특별한 방법이 있습니까?잘 부탁드립니다.

-d @명령 옵션은 경로가 실제로 존재하는 한 해결 가능한 파일 경로를 허용합니다.다음과 같은 이점이 있습니다.

  • 현재 디렉터리에 상대적인 경로
  • 완전히 검증된 길
  • 연약성이 있는 길.
  • 등등

정확히는 수백 개의 *Nix 스타일 명령어와 동일합니다.단 한 가지 간단한 메모는-durl encoding을 시도합니다.이것에 의해, 설명되고 있는 것은, 실제로는 원하는 데이터가 아닙니다.를 사용해야 합니다.--data-binary옵션을 선택합니다.다음과 같은 경우:

curl -XPOST
     -H 'Content-Type:application/json'
     -H 'Accept: application/json'
     --data-binary @/full/path/to/test.json
     http://localhost:8080/easy/eservices/echo -v -s

언급URL : https://stackoverflow.com/questions/16615900/sending-json-files-in-curl-requests-with-absolute-or-relative-paths

반응형