curl 변환기
개발curl 명령을 fetch, axios, Python, Go, Java, HTTPie로 실시간 변환. 다국어 탭 전환.
원격 URL은 가져오지 않습니다. JSON을 직접 붙여넣으세요.
이 페이지에서
curl 변환기란?#
curl은 HTTP가 가진 가장 보편적인 언어에 가장 가깝습니다. 모든 브라우저 DevTools 패널, 모든 API 문서 사이트, 모든 지원 티켓이 결국 curl 명령을 건넵니다. “copy as cURL”이 요청이 브라우저에서 버그 보고서로 여행하는 방식입니다. 문제는 붙여넣은 curl 명령이 코드베이스에서 실제로 실행할 수 있는 것은 거의 없다는 것입니다. 서비스는 Python, Go, 또는 브라우저 쪽 fetch로 쓰여 있습니다. curl에 셸 아웃하길 원하지 않고, 이미 쓰는 HTTP 클라이언트에서의 상당 호출을 원합니다.
이 페이지가 그 간극을 잇습니다. 왼쪽에 curl 명령을 붙여넣으면 셸 문법 — 플래그, 인용부호, 줄 연속, 헤더, 본문, 인증 — 을 구조화된 요청으로 파싱하고, 곧바로 6개 대상에 대한 상당 코드를 내보냅니다. 브라우저 fetch, axios, Python requests, Go net/http, Java HttpURLConnection, 그리고 httpie. 탭을 가로질러 읽고, 스택에 맞는 것을 복사하고, 다음으로 넘어가면 됩니다.
파싱은 전적으로 브라우저에서 동작합니다. 붙여넣은 명령은 서버에 닿지 않으며, 이는 실제 curl 명령이 빈번하게 bearer 토큰, 기본 인증 자격 증명, 또는 서명된 쿠키를 담기 때문에 중요합니다.
사용 방법#
- 왼쪽 입력 창에 curl 명령을 붙여넣습니다. 선행
curl단어를 붙여넣거나 생략할 수 있습니다. 둘 다 동작합니다. 후행\로 연결된 여러 줄 명령도 이해되며, 각 플래그가 자기 줄에 있는 터미널에서 곧바로 복사한 명령도 마찬가지입니다. - 예제 를 클릭해 형태를 먼저 보려는 현실적인 예시를 불러오거나, 지우기 로 창을 비웁니다.
- 출력 위의 탭 표시줄에서 대상 언어를 고릅니다. fetch, axios, python, go, java, 또는 httpie. 6개 모두 같은 파싱에서 생성되므로 탭 전환이 즉시 이루어지며, 재실행이 없습니다.
- 패널에서 생성된 코드를 읽습니다. 탭 표시줄의 복사 로 가져옵니다.
- 창 아래의 상태 표시줄을 지켜봅니다. 파서가 모델링하지 않은 플래그(출력 파일 리다이렉트, 프록시 설정)를 만나면 조용히 버리는 대신 명시적으로 말합니다.
주요 기능#
- 정규식 스크랩이 아닌 진짜 셸 토크나이저. 단일 인용부호, 이중 인용부호, ANSI-C
$'...'인용(\n,\t,\x41,é이스케이프 포함), 백슬래시-줄바꿈 줄 연속, 그리고"a\b"와'a\b'의 차이가 모두bash가 할 방식으로 처리됩니다. 공백으로 분할하는 단순한 변환기는 헤더 값에 공백이 있는 순간 부서집니다. - 한 번의 파싱으로 6개 대상.
fetch,axios, Python, Go, Java,httpie를 나란히 봅니다.fetch또는axios에 손을 뻗을지 망설이면 두 번의 클릭으로 같은 인증 헤더의 처리를 비교할 수 있습니다. - 본문 지능. 요청이
Content-Type: application/json을 실을 때 Python 이미터는 이를json=키워드로 넘겨 dict 형태 본문이 올바르게 전송되게 합니다. 그 외에는data=로 폴백합니다. - 기본 인증 한 번 디코딩.
-u user:pass플래그는 fetch에서btoa("user:pass"), axios에서auth블록, requests에서auth=튜플, Go에서SetBasicAuth가 됩니다. 각 관용구가 그 언어가 기대하는 방식입니다. - 알 수 없 플래그는 삼키지 않고 보고.
-o output.txt나--proxy는 상태 표시줄에unknown args로 표시되어, 변환이 실제로는 버린 리다이렉트나 프록시를 잡았다고 조용히 오도하게 되지 않습니다. - 백엔드 없음, 누출 없음. 명령은 페이지 자체 스크립트로 인메모리 토큰화됩니다. 붙여넣은 토큰을 어디로든 나르는 네트워크 호출이 없습니다.
사용 예#
예제 를 불러오거나(또는 JSON POST에 대해 브라우저 DevTools가 “Copy as cURL”할 때 만드는 것과 상당한 것을 붙여넣거나):
curl -X POST https://example.com/api/v1/users \
-H 'Authorization: Bearer tok' \
-H 'Content-Type: application/json' \
-d '{"name":"Alice","role":"admin"}'
fetch 탭으로 전환하면 다음을 얻습니다.
const response = await fetch("https://example.com/api/v1/users", {
method: "POST",
headers: {
"Authorization": "Bearer tok",
"Content-Type": "application/json",
},
body: "{\"name\":\"Alice\",\"role\":\"admin\"}",
});
python 탭으로 전환합니다. Content-Type이 JSON이므로 본문은 json= 키워드를 통과합니다.
import requests
url = 'https://example.com/api/v1/users'
headers = {
'Authorization': 'Bearer tok',
'Content-Type': 'application/json',
}
payload = '{"name":"Alice","role":"admin"}'
response = requests.request('POST', url, headers=headers, json=payload)
print(response.status_code)
같은 명령은 go, java, axios, httpie 탭 아래에도 즉시 사용할 수 있습니다. 한 번의 붙여넣기로 6개의 변환입니다.
FAQ#
명령에 대해 “unknown args”라고 나옵니다. 무엇을 건너뛰었나요?#
파서는 요청 을 기술하는 데 쓰는 curl 플래그를 모델링합니다. 메서드, URL, 헤더, 본문, 기본 인증, --compressed, -k, -L. curl 자체의 동작을 기술하는 플래그(본문을 파일에 쓰는 -o, --proxy, --connect-timeout, --cert)는 fetch 호출에 상당한 것이 없어 변환되지 않습니다. 이들은 모아져 상태 표시줄에 표시되어, 잃어버린 것이 아니라 의도적으로 버렸음을 알게 됩니다.
$'...' ANSI-C 인용을 쓰는 명령도 변환할 수 있나요?#
네. 터미널에서 복사한 헤더와 본문은 때로 \n이나 \t 같은 이스케이프 시퀀스가 셸에 의해 해석되도록 $'...'로 감겨 도착합니다. 토크나이저는 ANSI-C 인용을 이해하고 \n, \t, \xHH, \uHHHH, \UHHHHHHHH 및 단순 이스케이프를 디코딩하여, 변환기가 보는 바이트가 curl이 보냈을 바이트와 일치하게 합니다.
왜 Python 출력이 때로는 json=이고 때로는 data=인가요?#
이미터가 헤더를 봅니다. Content-Type: application/json이 있으면 본문을 json= 키워드로 넘겨 requests가 헤더를 설정하고 페이로드를 올바르게 인코딩하게 합니다. 다른 콘텐츠 타입(form-encoded, 일반 텍스트, multipart)에는 data=로 폴백합니다. 거기서 json=을 강제하면 틀리기 때문입니다.
요청을 대신 보내주나요?#
아니요, 그것은 의도된 것입니다. 이 도구는 명령을 코드로 번역만 할 뿐 결코 실행하지 않습니다. 생성된 스니펫은 사용자 자신의 프로그램에서, 사용자 자신의 자격 증명 아래서, 라이브로 무언가를 하기 전에 검사할 수 있게 실행됩니다.