본문 바로가기

cURL → 코드 변환기

브라우저 처리

curl 명령을 JavaScript fetch 또는 Python requests 코드로 바꿉니다. -H, -d, --data-urlencode, --json, -F 파일 업로드, -u 인증, -G까지 읽고 JSON 본문은 객체로 풀어 줍니다.

사용 전 확인
  • 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
도구 실행입력 후 결과 확인
cURL → 코드 변환기 샘플 실행

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처럼 코드에 옮기지 않은 옵션은 결과 끝에 주석으로 알려 줍니다.

사용 방법

  1. 'curl 명령' 칸에 curl로 시작하는 명령을 붙여 넣습니다. 여러 줄에 걸친 명령도 그대로 됩니다.
  2. '만들 코드'에서 JavaScript fetch 또는 Python requests를 고릅니다.
  3. '실행'을 누르고 결과 코드를 프로젝트에 붙여 넣은 뒤 파일 입력 등 표시된 부분을 채웁니다.

예시: 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로 시작하는 명령(bash 따옴표 형식)을 붙여 넣으세요' 오류

크롬의 'cURL로 복사(cmd)'는 ^ 기호를 쓰는 윈도우 형식이라 읽지 못합니다. 'cURL로 복사(bash)'를 고르거나 명령 앞에 다른 글자가 없는지 확인하세요.

'따옴표가 닫히지 않았습니다' 오류

복사하면서 명령 끝부분이 잘렸을 수 있습니다. 작은따옴표와 큰따옴표의 짝을 확인하세요.

활용 팁

  • -d @data.json처럼 파일에서 본문을 읽는 옵션은 내용을 알 수 없어 참고 주석으로 남깁니다. 코드에서 파일을 읽어 body로 넣으세요.
  • -u로 만든 Basic 인증 헤더에는 비밀번호가 Base64로 들어 있으니, 코드에서는 환경 변수에서 읽도록 바꾸는 것이 안전합니다.

자주 묻는 질문

Node.js에서도 fetch 코드가 동작하나요?

Node.js 18 이상은 fetch가 내장되어 그대로 쓸 수 있습니다. 다만 FormData 파일 부분의 fileInput.files[0]은 브라우저용이라 Node에서는 Blob이나 파일 스트림으로 바꿔야 합니다.

-L(리디렉션 따라가기)은 왜 변환되지 않나요?

fetch와 requests는 기본으로 리디렉션을 따라가므로 따로 옮길 필요가 없습니다. 그래서 참고 주석으로만 알려 줍니다.

axios나 Go 코드도 만들 수 있나요?

지금은 JavaScript fetch와 Python requests 두 가지만 만듭니다. fetch 결과를 기준으로 다른 라이브러리 형식으로 옮기면 됩니다.