cURL → 코드 변환기
브라우저 처리curl 명령을 JavaScript fetch 또는 Python requests 코드로 바꿉니다. -H, -d, --data-urlencode, --json, -F 파일 업로드, -u 인증, -G까지 읽고 JSON 본문은 객체로 풀어 줍니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
API 문서나 브라우저의 'cURL로 복사'로 얻은 명령을 코드로 옮길 때 따옴표, 헤더, 본문 형식을 하나씩 바꾸다 보면 실수가 생깁니다. 이 도구는 bash 따옴표 규칙대로 명령을 해석해 같은 요청을 보내는 fetch 또는 requests 코드를 만들어 줍니다.
import requests
url = "https://api.example.com/tools"
payload = {
"name": "Markdown",
"tags": [
"a"
],
"ok": True,
"n": None
}
response = requests.post(url, json=payload)
print(response.status_code, response.text)
cURL → 코드 변환기 사용 가이드
API 문서나 브라우저의 'cURL로 복사'로 얻은 명령을 코드로 옮길 때 따옴표, 헤더, 본문 형식을 하나씩 바꾸다 보면 실수가 생깁니다. 이 도구는 bash 따옴표 규칙대로 명령을 해석해 같은 요청을 보내는 fetch 또는 requests 코드를 만들어 줍니다.
작은따옴표·큰따옴표·$'…' 문자열, 줄 끝의 \ 이어 쓰기를 처리하고 -X, -H, -d·--data-raw·--data-binary(여러 개면 &로 연결), --data-urlencode, --json, -F, -u, -A, -e, -b, -G, -I 옵션을 읽습니다. Content-Type이 JSON이고 본문이 올바른 JSON이면 코드에서 객체로 보이게 풀어 씁니다.
-F '[email protected]' 같은 파일 업로드는 fetch에서는 FormData, Python에서는 files= 인자로 바꾸고, -u 사용자:비밀번호는 Authorization 헤더나 auth= 인자가 됩니다. -L, --compressed처럼 코드에 옮기지 않은 옵션은 결과 끝에 주석으로 알려 줍니다.
사용 방법
- 'curl 명령' 칸에 curl로 시작하는 명령을 붙여 넣습니다. 여러 줄에 걸친 명령도 그대로 됩니다.
- '만들 코드'에서 JavaScript fetch 또는 Python requests를 고릅니다.
- '실행'을 누르고 결과 코드를 프로젝트에 붙여 넣은 뒤 파일 입력 등 표시된 부분을 채웁니다.
예시: JSON POST를 Python으로
curl -X POST 'https://api.example.com/tools' -H 'Content-Type: application/json' -d '{"name":"Markdown","tags":["a"],"ok":true,"n":null}'import requests
url = "https://api.example.com/tools"
payload = {
"name": "Markdown",
"tags": [
"a"
],
"ok": True,
"n": None
}
response = requests.post(url, json=payload)
print(response.status_code, response.text)true·null은 Python의 True·None으로 바뀌고, json= 인자가 Content-Type을 대신 설정합니다.
이럴 때 쓰면 좋아요
- API 문서의 curl 예제를 프런트엔드 fetch 코드로 옮길 때
- 브라우저 개발자 도구에서 복사한 요청을 Python 스크립트로 자동화할 때
- 파일 업로드 curl 명령을 FormData 코드로 바꿀 때
- 동료가 보낸 재현용 curl을 테스트 코드로 만들 때
문제가 생겼을 때
크롬의 'cURL로 복사(cmd)'는 ^ 기호를 쓰는 윈도우 형식이라 읽지 못합니다. 'cURL로 복사(bash)'를 고르거나 명령 앞에 다른 글자가 없는지 확인하세요.
복사하면서 명령 끝부분이 잘렸을 수 있습니다. 작은따옴표와 큰따옴표의 짝을 확인하세요.
활용 팁
- -d @data.json처럼 파일에서 본문을 읽는 옵션은 내용을 알 수 없어 참고 주석으로 남깁니다. 코드에서 파일을 읽어 body로 넣으세요.
- -u로 만든 Basic 인증 헤더에는 비밀번호가 Base64로 들어 있으니, 코드에서는 환경 변수에서 읽도록 바꾸는 것이 안전합니다.
자주 묻는 질문
Node.js 18 이상은 fetch가 내장되어 그대로 쓸 수 있습니다. 다만 FormData 파일 부분의 fileInput.files[0]은 브라우저용이라 Node에서는 Blob이나 파일 스트림으로 바꿔야 합니다.
fetch와 requests는 기본으로 리디렉션을 따라가므로 따로 옮길 필요가 없습니다. 그래서 참고 주석으로만 알려 줍니다.
지금은 JavaScript fetch와 Python requests 두 가지만 만듭니다. fetch 결과를 기준으로 다른 라이브러리 형식으로 옮기면 됩니다.