curl-ის კონვერტაცია C-ში
curl2code გარდაქმნის curl ბრძანებებს C კოდად libcurl-ის გამოყენებით. კონვერტაცია სრულდება თქვენს ბრაუზერში WebAssembly-ის მეშვეობით სრული კონფიდენციალურობისთვის. Rust-ისთვის ნახეთ ჩვენი curl to Rust კონვერტორი. Go-სთვის იხილეთ curl to Go. ქვემოთ მოცემულია პრაქტიკული C მაგალითები მეხსიერების სწორი მართვით.
როგორ დავაკოპიროთ curl ბრაუზერიდან
- 1
გახსენით DevTools
დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.
- 2
გადადით Network ტაბზე
დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.
- 3
დააკოპირეთ როგორც cURL
დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → Copy → Copy as cURL. შემდეგ ჩასვით ზემოთ.
ხშირად დასმული კითხვები
რა არის libcurl?
libcurl არის C ბიბლიოთეკა, რომელიც დგას curl ბრძანების ხაზის ხელსაწყოს უკან. ის არის ყველაზე პორტაბელური და ფართოდ გავრცელებული HTTP კლიენტის ბიბლიოთეკა, რომელიც მხარს უჭერს 25-ზე მეტ პროტოკოლს. გამოიყენება ათასობით აპლიკაციასა და ჩაშენებულ სისტემაში. დაამატეთ თქვენი სისტემის პაკეტების მენეჯერით ან დააკავშირეთ სტატიკურად. curl2code აგენერირებს libcurl C კოდს easy ინტერფეისის გამოყენებით.
libcurl easy vs multi ინტერფეისი — რომელი გამოვიყენო?
easy ინტერფეისი (curl_easy_*) განკუთვნილია ერთჯერადი სინქრონული გადაცემებისთვის — მარტივი და პირდაპირია. multi ინტერფეისი (curl_multi_*) საშუალებას იძლევა არაბლოკირებადი პარალელური გადაცემებისთვის ერთ ნაკადში. გამოიყენეთ easy სკრიპტებისა და მარტივი ხელსაწყოებისთვის, ხოლო multi მაღალი წარმადობის აპლიკაციებისთვის. უფრო მაღალი დონის C-ოჯახის ენისთვის იხილეთ curl to Rust.
როგორ ვმართოთ ავტორიზაცია libcurl-ით?
Bearer-ისთვის: დააყენეთ მორგებული header-ი curl_slist_append(headers, "Authorization: Bearer token")-ით. Basic auth-ისთვის: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl ავტომატურად აკოდირებს Basic auth მონაცემებს. curl2code აკონვერტირებს -u და header დროშებს სწორ C API გამოძახებებად.
როგორ გავაგზავნოთ multipart form მონაცემები libcurl-ით?
გამოიყენეთ MIME API (libcurl 7.56+): curl_mime_init() mime სტრუქტურის შესაქმნელად, curl_mime_addpart() თითოეული ველისთვის, curl_mime_name() და curl_mime_filedata() ფაილების ატვირთვისთვის. დააყენეთ CURLOPT_MIMEPOST-ით. გაათავისუფლეთ curl_mime_free()-ით.
როგორ ვმართოთ შეცდომები libcurl-ში?
თითოეული curl_easy_* ფუნქცია აბრუნებს CURLcode-ს — შეამოწმეთ იგი CURLE_OK-თან მიმართებაში. გამოიყენეთ curl_easy_strerror(code) ადამიანისთვის გასაგები შეტყობინებებისთვის. დააყენეთ CURLOPT_ERRORBUFFER დეტალური შეცდომის სტრიქონებისთვის. მიიღეთ HTTP სტატუსი curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code)-ით.
როგორ ვმართოთ მეხსიერება libcurl-ში?
ყოველთვის გამოიძახეთ curl_easy_cleanup() handle-თან მუშაობის დასრულებისას. გაათავისუფლეთ header-ების სიები curl_slist_free_all()-ით. გაათავისუფლეთ MIME სტრუქტურები curl_mime_free()-ით. write callback-ებისთვის მართეთ თქვენი საკუთარი ბუფერის გამოყოფა. გამოიძახეთ curl_global_cleanup() ერთხელ პროგრამის დასრულებისას. რესურსების გათავისუფლების შეფერხება იწვევს მეხსიერების გაჟონვას.
როგორ დავაყენოთ timeout-ები libcurl-ში?
დააყენეთ CURLOPT_CONNECTTIMEOUT კავშირის timeout-ისთვის და CURLOPT_TIMEOUT გადაცემის მთლიანი დროისთვის (ორივე წამებში). მილიწამების სიზუსტისთვის გამოიყენეთ CURLOPT_CONNECTTIMEOUT_MS და CURLOPT_TIMEOUT_MS. ეს არის ზუსტად ის ოფციები, რომლებსაც curl CLI იყენებს --connect-timeout და --max-time-ით.
როგორ დავაკონფიგურიროთ proxy libcurl-ში?
დააყენეთ CURLOPT_PROXY proxy URL-ზე: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). SOCKS5-ისთვის: დააყენეთ CURLOPT_PROXYTYPE მნიშვნელობაზე CURLPROXY_SOCKS5. Proxy ავტორიზაციისთვის: CURLOPT_PROXYUSERPWD. libcurl ასევე ითვალისწინებს http_proxy გარემო ცვლადს.
როგორ გავაგზავნოთ POST მოთხოვნა JSON ტანით C ენაზე?
გადაიყვანეთ curl POST ბრძანება, როგორიცაა curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL, C ენაზე curl2code გამოყენებით. გენერირებული კოდი იყენებს curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code ავტომატურად ამოიცნობს -d/--data ფლაგებს JSON კონტენტით და ადგენს შესაბამის Content-Type ჰედერს libcurl კოდში.
როგორ დავამატოთ Bearer token ავტორიზაცია C ენაზე?
მიაწოდეთ curl -H "Authorization: Bearer YOUR_TOKEN" URL ბრძანება curl2code ხელსაწყოს და ის დააგენერირებს libcurl კოდს ავტორიზაციის ჰედერით: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code ამოიცნობს Bearer ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. Basic auth-ისთვის გამოიყენეთ -u user:pass.
როგორ განვსაზღვროთ Content-Type ჰედერი C ენაზე?
curl2code გადაიყვანს curl -H "Content-Type: application/json" URL ბრძანებას libcurl კოდში შესაბამისი ჰედერით: curl_slist_append(headers, "Content-Type: application/json"). -d მონაცემებისთვის curl სტანდარტულად იყენებს application/x-www-form-urlencoded; -F ფორმის ატვირთვისთვის კი — multipart/form-data. curl2code თითოეულ მათგანს შესაბამის libcurl API-სთან აკავშირებს.
სასარგებლო ბმულები
curl სახელმძღვანელოები
curl შეცდომის კოდები
მოძებნეთ ნებისმიერი curl გასვლის კოდი — მიზეზები, გამოსწორებები და გამართვის რჩევები.
ფაილების ჩამოტვირთვა curl-ით
შეინახეთ ფაილები -o, -O პარამეტრებით, მიჰყევით გადამისამართებებს, განაახლეთ ჩამოტვირთვები და სხვა.
SSL, TLS და პროქსი
სერტიფიკატების, TLS ვერსიების, HTTP/SOCKS პროქსების და მორგებული DNS-ის კონფიგურაცია.