Како да го користите конверторот cURL во код
Залепете cURL команда во полето за внесување, изберете го вашиот целен програмски јазик од паѓачкото мени и кликнете Конвертирај. Алатката ја анализира cURL командата за да ги извлече HTTP методот, URL-то, заглавијата и телото на барањето, а потоа генерира еквивалентен код користејќи ја стандардната HTTP библиотека на избраниот јазик. Панелот за статистика го прикажува анализираниот метод, URL-то, бројот на заглавија и дали има тело. Користете го копчето Копирај за да го копирате генерираниот код во вашиот клипборд.
Оваа алатка е непроценлива за програмери кои тестираат API со cURL и потоа треба да ги интегрираат тие барања во кодот на нивната апликација. Алатките за развој на прелистувачите ви дозволуваат да копирате кое било мрежно барање како cURL команда, што олеснува фаќање на функционално барање и негово конвертирање во код на јазикот по ваш избор.
Разбирање на cURL командите
cURL е најшироко користениот HTTP клиент за командна линија, инсталиран стандардно на практично секој оперативен систем. cURL команда се состои од клучниот збор curl проследен со URL и опционални знаменца. Знаменцето -X го специфицира HTTP методот (GET, POST, PUT, DELETE, итн.). Знаменцето -H додава заглавија на барањето како Content-Type и Authorization. Знаменцето -d испраќа податоци во телото на барањето. Знаменцето -u обезбедува акредитиви за основна автентикација.
Кога не е експлицитно специфициран метод, cURL стандардно користи GET. Кога знаменцето -d се користи без -X, cURL автоматски преминува на POST. Овие имплицитни однесувања се зачувани во генерираниот код, кој експлицитно го поставува методот за да ја направи намерата јасна независно од стандардните вредности специфични за јазикот.
Поддржани јазици и библиотеки
Конверторот генерира идиоматски код за четири популарни јазици. Python кодот ја користи библиотеката requests, која е де факто стандард за HTTP во Python. JavaScript кодот го користи вградениот fetch API, достапен во сите модерни прелистувачи и Node.js. Ruby кодот користи Net::HTTP од стандардната библиотека. PHP кодот ги користи cURL функциите (curl_init, curl_setopt, curl_exec), достапни во практично сите PHP инсталации.
Ракување со автентикација и заглавија
API барањата често бараат автентикација. Конверторот ја обработува автентикацијата со Bearer токен пренесена преку -H 'Authorization: Bearer ...', основната автентикација преку -u username:password и заглавијата за API клуч. Прилагодените заглавија се преведуваат во соодветниот механизам за дефинирање заглавија за секој јазик. Content-Type заглавијата се зачувуваат за да се обезбеди телото на барањето да биде испратено во правилниот формат, без разлика дали е JSON, URL-кодирано или multipart.
Разбирање на cURL знаменцата
cURL нуди десетици знаменца за командна линија, но неколку претставуваат огромното мнозинство од реалната употреба. Учењето што прави секое од нив ви помага да читате и пишувате cURL команди со доверба, а нивното разбирање го олеснува верификувањето дека конвертираниот код е точен.
Знаменца за барања
Знаменцето -X (или --request) го поставува HTTP методот. Вообичаените вредности се GET, POST, PUT, PATCH и DELETE. Ако целосно го изоставите -X, cURL стандардно користи GET освен ако е присутно знаменце за податоци како -d, во кој случај автоматски преминува на POST. Знаменцето -H (или --header) додава прилагодено заглавие на барањето. Можете да го користите повеќе пати за поставување повеќе заглавија: -H 'Content-Type: application/json' -H 'Accept: application/json'. Знаменцето -d (или --data) испраќа податоци во телото на барањето и имплицира POST. За JSON полезни товари, генерално го комбинирате со -H 'Content-Type: application/json'. Варијантата --data-raw се однесува идентично но не го интерпретира префиксот @ како референца кон датотека.
Знаменца за автентикација и излез
Знаменцето -u (или --user) обезбедува акредитиви за основна автентикација во формат username:password. cURL ги кодира во Base64 и ги испраќа во заглавието Authorization. Знаменцето -o (или --output) го запишува телото на одговорот во датотека наместо на стандарден излез. Знаменцето -O зачувува во датотека користејќи го далечинското име на датотеката од URL-то. Знаменцето -v (или --verbose) ги прикажува деталните информации за барањето и одговорот, вклучувајќи детали за TLS ракувањето и размената на заглавија, што е непроценливо за дебагирање. Знаменцето -k (или --insecure) му кажува на cURL да не го верификува TLS сертификатот, корисно за развојни околини со самопотпишани сертификати но опасно во продукција. Знаменцето -L (или --location) му кажува на cURL да ги следи HTTP пренасочувањата (3xx одговори), кои многу API и веб-страници ги емитуваат.
Како функционира конверзијата
Конвертирањето на cURL команда во изворен код вклучува неколку посебни чекори. Конверторот прво ја токенизира влезната низа, делејќи ја по празни простори додека ги почитува едноструките и двоструките наводници за вредностите на заглавијата и JSON телата што содржат празни простори да останат интактни. Потоа секвенцијално ја поминува листата на токени, идентификувајќи ги познатите знаменца и консумирајќи ги нивните аргументи. Знаменце како -X го консумира следниот токен како HTTP метод; -H го консумира следниот токен како низа на заглавие; -d или --data го консумира следниот токен како тело на барањето. Токените кои не се поврзани со знаменце и личат на URL-а (започнуваат со http:// или https://) се фаќаат како целно URL.
Откако анализата е завршена, конверторот поседува структуриран приказ на барањето: URL-то, HTTP методот, листа на заглавија (секое поделено на име и вредност на првата двоточка), суровата низа на телото и евентуалните акредитиви за автентикација. Овој меѓупретстав е независен од јазикот. Последниот чекор е генерирање на код, каде шаблон специфичен за јазикот ја мапира секоја компонента во HTTP идиомите на целниот јазик. Методот станува аргумент на функција или константа, заглавијата стануваат речник или асоцијативна низа, а телото се прикачува на начинот на кој библиотеката го очекува. Генерираниот код е форматиран со правилно вовлекување и готов за извршување.
Специјалните случаи бараат посебно третирање. Повеќелиниските cURL команди кои користат продолжување со обратна коса црта (\ на крајот на линијата) се спојуваат пред анализата. Знаменцето -u се преведува во механизам за основна автентикација специфичен за јазикот наместо да биде оставено како сурово заглавие. Дупликатните заглавија се зачувуваат по редослед, бидејќи некои API се потпираат на повеќе вредности за истото име на заглавие (на пример, повеќе Set-Cookie заглавија). Конверторот исто така ги отстранува знаците за промпт на shell $ или % на почетокот на линијата кои понекогаш се појавуваат кога команда е копирана од упатство или снимка на терминал.
HTTP библиотеки специфични за јазици
Секој целен јазик користи различна библиотека со свои конвенции за конструирање на HTTP барања. Разбирањето на овие разлики ви помага да го изберете вистинскиот излез и да го модифицирате генерираниот код доколку е потребно.
Python — requests
Библиотеката requests е најпопуларниот HTTP клиент во Python екосистемот. Обезбедува едноставен API на високо ниво каде HTTP методот директно кореспондира со име на функција: requests.get(), requests.post(), итн. Заглавијата се пренесуваат како едноставен речник на клучниот аргумент headers. JSON телата можат да се пренесат преку параметарот json, кој автоматски го поставува Content-Type заглавието и го серијализира речникот. Параметарот auth прифаќа торка за основна автентикација. Податоците од одговорот се достапни преку .json(), .text или .content во зависност од посакуваниот формат.
JavaScript — fetch API
fetch API е вграден во сите модерни прелистувачи и Node.js 18+. Прима URL како прв аргумент и објект со опции како втор. Објектот со опции ги прифаќа својствата method, headers и body. Заглавијата можат да бидат обичен објект или инстанца на Headers. За разлика од requests во Python, fetch не фрла исклучок при HTTP статусни кодови за грешка; мора сами да проверите response.ok. Телото на одговорот се консумира асинхроно преку методи како response.json() или response.text(). Бидејќи fetch враќа Promise, генерираниот код користи async/await за читливост.
Ruby — Net::HTTP
Стандардната библиотека на Ruby вклучува Net::HTTP, која е поопширна од еквивалентите во Python или JavaScript, но не бара надворешни зависности. Типично барање започнува со парсирање на URL-то во URI објект, а потоа креирање инстанца на Net::HTTP конфигурирана за хостот и портот. Објектите за барање како Net::HTTP::Post или Net::HTTP::Get го претставуваат методот. Заглавијата се поставуваат со нотација на загради на објектот за барање. Телото се доделува директно. За HTTPS URL-а, use_ssl мора да биде поставен на true. Поради оваа опширност, многу Ruby програмери користат обвивачки gem-ови како Faraday или HTTParty, но генерираниот код се држи до стандардната библиотека за максимална преносливост.
PHP — cURL екстензија
PHP cURL екстензијата ја обвива истата libcurl библиотека која ја напојува алатката за командна линија curl. Работниот тек се врти околу рачка создадена со curl_init(). Опциите се поставуваат преку повици кон curl_setopt(): CURLOPT_URL за целното URL, CURLOPT_CUSTOMREQUEST за HTTP методот, CURLOPT_HTTPHEADER за низа од низи на заглавија, и CURLOPT_POSTFIELDS за телото на барањето. Поставувањето на CURLOPT_RETURNTRANSFER на true прави curl_exec() да го врати одговорот како низа наместо да го прикаже. Бидејќи PHP екстензијата одблизу го огледува C API на libcurl, генерираниот PHP код речиси еден-на-еден одговара на оригиналните cURL знаменца, правејќи ја оваа конверзијата најтранспарентна од четирите јазици.
Често поставувани прашања
Што е cURL?
cURL е алатка за командна линија за правење HTTP барања. Е прединсталиран на Linux, macOS и Windows 10+, и е стандардна алатка за тестирање на API.
Како да прочитам cURL команда?
Започнува со curl проследено со URL. Користете -X за методот, -H за заглавија, -d за податоци во телото и -u за автентикација.
Кои HTTP методи ги поддржува cURL?
Сите стандардни методи: GET, POST, PUT, PATCH, DELETE, HEAD и OPTIONS. Поставете го методот со знаменцето -X.
Можам ли да конвертирам cURL со автентикација?
Да. Алатката ја обработува основната автентикација (-u), Bearer токените (-H Authorization) и други модели на автентикација базирани на заглавија.
Дали оваа алатка ги обработува multipart податоците?
Да. Командите со знаменца -F за прикачување датотеки и полиња на формулари се конвертираат во соодветната multipart синтакса на секој јазик.
Save your results & get weekly tips
Get calculator tips, formula guides, and financial insights delivered weekly. Join 10,000+ readers.
No spam. Unsubscribe anytime.