컬을 사용하여 배열이 있는 json 객체를 배치하는 방법
데이터베이스에 입력하기 위한 일련의 데이터를 가지고 있습니다.데이터를 입력하기 위한 사용자 인터페이스가 대량 입력에 적합하지 않기 때문에 그에 상응하는 명령줄을 작성하려고 합니다.Chrome에서 UI의 네트워크 요청을 검사하면 json 객체의 PUT 요청이 나타납니다.요청을 복제하려고 하면
curl -H 'Accept: application/json' -X PUT '{"tags":["tag1","tag2"],"question":"Which band?","answers":[{"id":"a0","answer":"Answer1"},{"id":"a1","answer":"answer2"}]}' http://example.com/service`
에러가 발생하다
컬: (3) [글로빙]네스트 브레이스 포스 X에서는 지원되지 않습니다.
여기서 X는 첫 번째 " "의 문자 위치입니다.
어레이를 포함하는 json 개체를 배치하려면 어떻게 해야 합니까?
명령줄에서 PUT에서 전송하는 문자열 앞에 -d/--데이터를 삽입해야 하며 Content-Type을 설정하고 Accept를 설정하지 않아야 합니다.
curl -H 'Content-Type: application/json' -X PUT -d '[JSON]' \
http://example.com/service
질문의 정확한 JSON 데이터를 사용하면 전체 명령줄은 다음과 같습니다.
curl -H 'Content-Type: application/json' -X PUT \
-d '{"tags":["tag1","tag2"],
"question":"Which band?",
"answers":[{"id":"a0","answer":"Answer1"},
{"id":"a1","answer":"answer2"}]}' \
http://example.com/service
주의: JSON 데이터는 읽기 쉽도록 포장되어 있습니다.유효하지 않습니다.curl
부탁한다.
원래의 투고에는 다른 문제(-d가 없는 경우 등)가 있었지만, 에러 메세지는 보다 일반적인 것입니다.
컬: (3) [글로빙]네스트 브레이스 포스 X에서는 지원되지 않습니다.
이는 물결 괄호 {}와 대괄호 []가 컬로 된 특수 글로브 문자이기 때문입니다.이 글로벌 기능을 끄려면 "-g" 옵션을 사용합니다.
예를 들어, "-g"를 사용하지 않으면 다음 Solr 패싯 쿼리가 실패합니다. curl -g 'http://localhost:8983/solr/query?json.facet={x:{terms:"myfield"}}'
언급할 필요가 있습니다.Accept
header는 서버에게 우리가 받아들이고 있는 것에 대해 무언가를 알려준다.단, 이 컨텍스트의 관련 헤더는Content-Type
종종 다음과 같이 지정하는 것이 좋습니다.Content-Type
~하듯이application/json
JSON을 송신할 때.curl의 경우 구문은 다음과 같습니다.
-H 'Content-Type: application/json'
따라서 완전한 컬 명령은 다음과 같습니다.
curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X PUT -d '{"tags":["tag1","tag2"],"question":"Which band?","answers":[{"id":"a0","answer":"Answer1"},{"id":"a1","answer":"answer2"}]}' http://example.com/service`
유일하게 도움이 된 것은 json 본문 텍스트 대신 jSON 파일을 사용한 것입니다.cURL을 사용하여 파일 내용을 본문 엔티티로 전송하는 방법에 기반합니다.
-g와 함께 큰따옴표 대신 작은따옴표를 사용해 보십시오.
다음 시나리오가 나에게 효과가 있었다.
curl -g -d '{"collection":[{"NumberOfParcels":1,"Weight":1,"Length":1,"Width":1,"Height":1}]}" -H "Accept: application/json" -H "Content-Type: application/json" --user test@testmail.com:123456 -X POST https://yoururl.com
와 함께
curl -g -d "{'collection':[{'NumberOfParcels':1,'Weight':1,'Length':1,'Width':1,'Height':1}]}" -H "Accept: application/json" -H "Content-Type: application/json" --user test@testmail.com:123456 -X POST https://yoururl.com
이로 인해 특히 오류 curl 명령 오류가 해결되었습니다: 잘못된 URL 콜론이 첫 번째 문자입니다.
언급URL : https://stackoverflow.com/questions/15425446/how-to-put-a-json-object-with-an-array-using-curl
'source' 카테고리의 다른 글
Jackson을 사용하여 JSON 요소 제거 (0) | 2023.03.20 |
---|---|
react hooks useEffect() 청소는 componentWillUnmount만 해당합니까? (0) | 2023.03.20 |
이력 푸시와 치환의 트레이드오프는 무엇입니까? (0) | 2023.03.15 |
2개의 포트를 사용하여 스프링 부트를 설정하다 (0) | 2023.03.15 |
AngularJs $http.post()이 데이터를 전송하지 않음 (0) | 2023.03.15 |