cURL 원격 서버 간에 데이터를 전송하기 위한 다양한 도구가 포함된 패키지입니다. FTP, Windows 공유, 메일 서버 및 HTTP를 사용하는 웹 서버를 지원합니다.
Linux 셸에서 파일 다운로드는 일반적으로 cURL을 사용하여 수행됩니다. 다음과 같은 명령:
curl https://example.org/file.zip --output file.zip
이렇게 하면 GET 메서드를 사용하여 파일을 요청하고 간단히 다운로드할 수 있습니다.
이 문서에서는 cURL을 사용하여 양식 데이터를 포함하여 POST 요청을 만드는 방법을 자세히 설명합니다. 이는 서버에서 파일을 다운로드하기 위해 자격 증명이 필요한 경우 또는 데이터베이스에 저장하기 위해 웹 양식에 데이터를 제출하는 자동화된 스크립트를 작성하는 경우에 유용할 수 있습니다.
또한 REST API와 함께 사용하기 위해 파일에서 XML 또는 JSON 데이터를 제출하는 방법도 다룹니다.
cURL을 사용하여 URL 인코딩된 필드 게시
예를 들어 다음 양식 데이터를 제출합니다.
필드 이름 | 값 |
---|---|
필드1 | 값1 |
필드2 | 값2 |
데이터는 URL https://example.org/submit.php로 제출됩니다. . example.org의 주소 실제로 존재하지 않으며 예제로 안전하게 사용할 수 있는 웹 도메인일 뿐입니다. submit.php 또한 양식 제출 스크립트의 예시 이름이며 특정 항목을 참조하지 않습니다.
양식 데이터는 각 양식 필드와 해당 값이 name=value로 정의된 단일 문자열로 POST 요청에 전달할 수 있습니다. , &으로 구분 –data 사용 옵션:
curl --data "field1=value1&field2=value2" https://example.org/submit.php
그러나 URL 인코딩이 필요하므로 이상적이지 않습니다. 데이터 – 즉, 공백과 슬래시가 있는 데이터는 HTTP를 통해 보낼 수 있도록 형식을 지정하는 특수 코드로 대체되었습니다. 이 작업은 수동으로 수행할 수 있지만 cURL은 –data-urlencode를 사용하여 대신 수행할 수 있습니다. :
curl --data-urlencode "field1=value1&field2=value2" https://example.org/submit.php
필드 이름은 URL로 인코딩되지 않습니다. 인코딩하려는 경우 접두사로 =을 붙입니다. :
curl --data-urlencode "=user name=Linus Torvalds" https://example.org
–data-urlencode를 사용합니다. –data 대신 다음 예의 경우 일을 쉽게 하기 위해 POST 요청을 하기 위해.
별도로 지정된 URL 인코딩 필드
각 양식 필드 이름/값을 개별적으로 전달할 수 있습니다. 이를 통해 훨씬 더 쉽게 읽을 수 있습니다.
curl --data-urlencode "field1=value1" --data-urlencode "field2=value2" https://example.org/submit.php
cURL을 사용한 멀티파트/파일 업로드
파일을 포함한 여러 부분으로 구성된 양식 요청은 –form을 사용하여 POST를 통해 제출할 수 있습니다. 옵션. 아래 예는 myfile.txt를 fileupload 양식 필드에 업로드합니다.
curl --form "[email protected]" https://example.org/submit.php
필드와 파일, 파일 이름이 있는 멀티파트
양식 필드 이름과 값 쌍은 파일 업로드 및 파일 이름에 포함될 수도 있습니다. 변경하려는 경우 업로드된 파일의 경우:
curl --form "[email protected];filename=newfilename.txt" --form field1=value1 --form field2=value2 https://example.org/submit.php
데이터 없음
데이터 없이 POST 요청을 하려면 빈 문자열을 전달하기만 하면 됩니다.
curl --data-urlencode '' https://example.org/submit.php
파일 업로드 진행률 표시
업로드 진행 상황을 주시하려면 -o 출력을 추가하세요. 진행률 표시줄을 표시하는 옵션:
curl --tr-encoding -X POST -v -# -o output -T myfile.dat https://example.org/submit.php
파일에 저장된 데이터 제출
파일에 이미 저장된 데이터를 업로드하는 경우 cURL 명령으로 구문 분석하지 않고 한 번에 모두 제출할 수 있습니다.
curl --data-urlencode [email protected] https://example.org/submit.php
적절한 헤더를 추가하여 프로그래밍 방식 API 서비스에 대해 JSON 및 XML 데이터를 게시할 수 있습니다.
curl -X POST --data-urlencode @myfile.txt https://example.org/submit.php --header "Content-Type:text/xml" curl -X POST --data-urlencode @myfile.txt https://example.org/submit.php --header "Content-Type:application/json"
결론
Linux 명령줄에서 자주 작업하는 경우 cURL을 마스터하는 것이 중요합니다. 프로그래밍 방식 API와 상호 작용하고 자체 서버에서 데이터를 전송하는 용도 외에도 일반적으로 전체 웹 브라우저가 필요할 수 있는 많은 작업을 수행할 수 있습니다.
여기에서 다른 Linux 셸 및 스크립팅 기사를 확인하십시오!