cURL-muunnin: cURL → fetch, Python, Axios ja muut

Liitä curl-komento, esimerkiksi selaimen DevToolsista kopioitu, ja saat suoritusvalmista koodia 8 kielellä. Otsakkeet, JSON-rungot, lomakkeet, tiedostojen lähetykset, tunnistautuminen ja evästeet muunnetaan.

Toimii selaimessaEi rekisteröitymistäMitään ei lähetetä

Muunna kieleen
JavaScript fetch

    

    Näin käytät työkalua: cURL-muunnin

    1. Kopioi pyyntö cURL-muodossa: napsauta Chromen tai Firefoxin DevToolsissa pyyntöä hiiren oikealla Network-välilehdellä → Copy → Copy as cURL.
    2. Liitä se syötekenttään. Monirivisiä komentoja \-merkillä, Windowsin ^-jatkorivejä ja $'…'-merkkijonoja tuetaan.
    3. Valitse kohde: JavaScript fetch, Axios, Node.js, Python requests, Python httpx, Go, PHP tai HTTPie.
    4. Lue tuloksen alla olevat varoitukset. Niissä luetellaan valitsimet, joille ei ole vastinetta kohdekielessä.
    5. Kopioi koodi tai lataa se tiedostona.

    Miksi muuntaa curl-komentoja koodiksi?

    curl on HTTP:n yhteinen kieli. API-dokumentaatio näyttää esimerkit curl-muodossa, selaimen DevTools vie pyynnöt curl-komentoina ja tukitiimit lähettävät toistettavat esimerkit curlina. Kun haluat pyynnön sovellukseen, se on kirjoitettava käsin uudelleen: siirrettävä jokainen -H otsakeobjektiin, muutettava -d rungoksi, -u basic-tunnistautumiseksi ja muistettava, että -G siirtää datan kyselymerkkijonoon. Tämä muunnin tekee käännöksen puolestasi ja tuottaa koodia, jonka voit liittää suoraan projektiin.

    Tuetut curl-valitsimet

    ValitsinMuunnetaan muotoon
    -X, -I, -GHTTP-metodi (POST päätellään, kun runko on olemassa)
    -H, -A, -e, -bOtsakkeet, User-Agent, Referer ja evästeet
    -d, --data-raw, --data-binary, --data-urlencode, --jsonPyynnön runko: JSON-objektit, lomakekentät tai raakateksti
    -FMultipart-lomakedata, myös @file-tiedostolähetykset
    -u, --oauth2-bearerBasic-tunnistautuminen tai Bearer-token
    -k, -L, -m, -x, --compressedTLS-varmennus, uudelleenohjaukset, aikakatkaisu, välityspalvelin ja pakkaus

    JSON-rungoista tulee oikeita objekteja

    Kun pyyntö lähettää JSONia (Content-Type: application/json -otsake, --json tai JSONina jäsentyvä runko), muunnin tuottaa natiiveja tietorakenteita escapetun merkkijonon sijaan: JSON.stringify({...}) fetchille, tavallinen objekti Axiosille ja json= Python-dictillä (True, False, None) requestsille ja httpx:lle. Näin dataa on helppo muokata ja täyttää muuttujilla.

    Huomioitavia eroja

    Selaimet eivät voi poistaa varmennetarkistuksia käytöstä tai ohjata yksittäistä pyyntöä välityspalvelimen kautta, joten -k ja -x näkyvät selaimen fetch-koodissa vain kommentteina. curl ei seuraa uudelleenohjauksia ilman -L-valitsinta, kun taas fetch, requests ja Go seuraavat niitä oletuksena. curl lomakekoodaa -d-valitsimella ilman Content-Typeä lähetetyn rungon; jos se näyttää JSONilta, muunnin lähettää sen JSONina ja kertoo siitä varoituksessa.

    Usein kysytyt kysymykset

    Lähetetäänkö curl-komentoni palvelimelle?
    Ei. Jäsennys ja koodin luonti tapahtuvat kokonaan selaimessasi. DevToolsista kopioidut komennot sisältävät usein evästeitä ja tokeneita, joten mitään ei lähetetä eikä tallenneta.
    Miten kopioin pyynnön cURL-muodossa Chromesta?
    Avaa DevTools (F12), siirry Network-välilehdelle, napsauta pyyntöä hiiren oikealla ja valitse Copy → Copy as cURL (bash). Myös Windowsin cmd-versio toimii tässä.
    Tukeeko se tiedostojen lähetystä?
    Kyllä. -F name=@file muuttuu JavaScriptissä FormData-objektiksi, Pythonissa files=-dictiksi, Gossa mime/multipart-koodiksi ja PHP:ssä CURLFile-olioksi. -d @file ja -T file lukevat pyynnön rungon tiedostosta.
    Mitä tapahtuu valitsimille, joita muunnin ei tunne?
    Ne luetellaan varoituksina tuloksen alla, joten mitään ei pudoteta huomaamatta. Pelkkää tulostusta koskevat liput, kuten -s, -v tai -o, ohitetaan, koska ne eivät muuta pyyntöä.
    Kumpaa kannattaa käyttää Pythonissa, requestsia vai httpx:ää?
    requests on pitkäaikainen oletusvalinta synkronisiin skripteihin. httpx:llä on lähes identtinen API, se lisää HTTP/2- ja async-tuen eikä seuraa uudelleenohjauksia, ellet pyydä, mikä vastaa curlia paremmin.

    Aiheeseen liittyvät työkalut