curl-কে Go-এ রূপান্তর করুন

স্ট্যান্ডার্ড net/http প্যাকেজ ব্যবহার করে curl কমান্ডগুলোকে Go কোডে রূপান্তর করুন। curl2code সম্পূর্ণভাবে WebAssembly-এর মাধ্যমে আপনার ব্রাউজারে চলে — আপনার ডেটা গোপন থাকে। আপনি যদি উচ্চ-স্তরের ভাষা পছন্দ করেন, তবে আমাদের curl to Python converter ব্যবহার করে দেখুন। সিস্টেম প্রোগ্রামিংয়ের জন্য curl to Rust দেখুন। নিচে ব্যবহারের জন্য প্রস্তুত Go উদাহরণ দেওয়া হলো।

আপনার ব্রাউজার থেকে কীভাবে curl কপি করবেন

  1. 1

    DevTools ওপেন করুন

    আপনার ব্রাউজার ডেভেলপার টুলস ওপেন করতে F12 অথবা Ctrl+Shift+I চাপুন।

  2. 2

    Network ট্যাবে যান

    Network ট্যাবে ক্লিক করুন এবং সেই কাজটি করুন যা HTTP রিকোয়েস্টটি ট্রিগার করে।

  3. 3

    cURL হিসেবে কপি করুন

    রিকোয়েস্টের ওপর রাইট-ক্লিক করুন → CopyCopy as cURL। তারপর এটি উপরে পেস্ট করুন।

সচরাচর জিজ্ঞাসিত প্রশ্নাবলী

Go net/http কী?

Go-এর net/http হলো স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত একটি প্রোডাকশন-গ্রেড HTTP ক্লায়েন্ট এবং সার্ভার। এর জন্য কোনো এক্সটার্নাল ডিপেন্ডেন্সির প্রয়োজন নেই, এটি ডিফল্টভাবে HTTP/2 সমর্থন করে এবং সরাসরি কানেকশন পুলিং, টাইমআউট এবং TLS কনফিগারেশন প্রদান করে। Go-এর জন্য curl2code শুধুমাত্র এই লাইব্রেরিটিই ব্যবহার করে — কোনো থার্ড-পার্টি প্যাকেজের প্রয়োজন নেই।

net/http বনাম থার্ড-পার্টি Go HTTP ক্লায়েন্ট — কোনটি ব্যবহার করবেন?

Go-এর net/http বেশিরভাগ ক্ষেত্রে যথেষ্ট শক্তিশালী — অনেক ভাষার বিপরীতে, এর স্ট্যান্ডার্ড লাইব্রেরি প্রোডাকশন-রেডি। resty-এর মতো থার্ড-পার্টি অপশনগুলো সুবিধা (স্বয়ংক্রিয়-রিট্রাই, চেইনিং) যোগ করে কিন্তু ডিপেন্ডেন্সি বাড়ায়। অনুরূপ 'ব্যাটারিস-ইনক্লুডেড' পদ্ধতির জন্য, আমাদের curl to Rust কনভার্টার (reqwest) অথবা curl to Python দেখুন।

Go-তে অথেনটিকেশন কীভাবে হ্যান্ডেল করবেন?

Authorization দিয়ে req.Header.Set("Authorization", "Bearer "+token) হেডার সেট করুন। Basic অথেনটিকেশনের জন্য, req.SetBasicAuth(user, pass) ব্যবহার করুন যা স্বয়ংক্রিয়ভাবে হেডার সেট করে। curl2code -u এবং -H 'Authorization: ...' শনাক্ত করে এবং সঠিক Go কোড জেনারেট করে।

Go-তে কীভাবে মাল্টিপার্ট ফর্ম ডেটা পাঠাবেন?

mime/multipart প্যাকেজ ব্যবহার করুন: multipart.NewWriter(body) দিয়ে একটি রাইটার তৈরি করুন, CreateFormField দিয়ে ফিল্ড এবং CreateFormFile দিয়ে ফাইল যোগ করুন। Content-Type-কে writer.FormDataContentType()-এ সেট করুন। curl2code সমস্ত -F ফ্ল্যাগ কনভার্সন হ্যান্ডেল করে।

Go-তে HTTP এরর কীভাবে হ্যান্ডেল করবেন?

Go স্পষ্ট এরর রিটার্ন ব্যবহার করে: if err != nil-এর পর সর্বদা http.Do(req) চেক করুন। তারপর HTTP-লেভেল এররের জন্য resp.StatusCode চেক করুন। রিসোর্স লিক রোধ করতে সর্বদা defer resp.Body.Close() ব্যবহার করুন। এই স্পষ্ট এরর হ্যান্ডলিং হলো Go-এর একটি মূল প্যাটার্ন — কোনো এক্সেপশন বা try/catch নেই।

Go-তে কীভাবে কনকারেন্ট (concurrent) HTTP রিকোয়েস্ট করবেন?

sync.WaitGroup অথবা চ্যানেলের সাথে goroutines ব্যবহার করুন। go func() { ... }() দিয়ে প্রতিটি রিকোয়েস্ট একটি goroutine-এ লঞ্চ করুন। বাউন্ডেড কনকারেন্সির জন্য, একটি সেমাফোর (semaphore) চ্যানেল ব্যবহার করুন। Go-এর goroutines খুবই হালকা — আপনি সহজেই হাজার হাজার কনকারেন্ট রিকোয়েস্ট হ্যান্ডেল করতে পারেন। অনুরূপ কনকারেন্সি প্যাটার্নের জন্য, curl to Rust দেখুন।

Go HTTP ক্লায়েন্টে কীভাবে টাইমআউট সেট করবেন?

সামগ্রিক রিকোয়েস্ট ডেডলাইনের জন্য client.Timeout সেট করুন। সূক্ষ্ম নিয়ন্ত্রণের জন্য, context.WithTimeout অথবা context.WithDeadline ব্যবহার করুন এবং কনটেক্সটটি http.NewRequestWithContext-এ পাস করুন। curl-এর --connect-timeout-কে Transport.DialContext টাইমআউটে এবং --max-time-কে client.Timeout-এ ম্যাপ করা হয়।

Go-তে প্রক্সি কীভাবে কনফিগার করবেন?

একটি কাস্টম Transport.Proxy-এ http.ProxyURL(proxyUrl)-কে http.Transport-এ সেট করুন। Go ডিফল্টভাবে HTTP_PROXY-এর মাধ্যমে HTTPS_PROXY এবং http.ProxyFromEnvironment এনভায়রনমেন্ট ভেরিয়েবলগুলোকেও সমর্থন করে। curl2code -x এবং --proxy ফ্ল্যাগগুলোকে যথাযথ Go প্রক্সি কনফিগারেশনে কনভার্ট করে।

Go-তে JSON বডি সহ একটি POST রিকোয়েস্ট কীভাবে পাঠাবেন?

curl2code ব্যবহার করে curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL এর মতো একটি curl POST কমান্ডকে Go-তে রূপান্তর করুন। জেনারেট করা কোড http.Post(url, "application/json", bytes.NewBuffer(jsonData)) ব্যবহার করে। curl2code স্বয়ংক্রিয়ভাবে JSON কন্টেন্ট সহ -d/--data ফ্ল্যাগ শনাক্ত করে এবং net/http কোডে উপযুক্ত Content-Type হেডার সেট করে।

Go-তে Bearer token অথরাইজেশন কীভাবে যোগ করবেন?

curl2code-এ curl -H "Authorization: Bearer YOUR_TOKEN" URL পাস করুন এবং এটি অথরাইজেশন হেডার সহ net/http কোড জেনারেট করে: req.Header.Set("Authorization", "Bearer YOUR_TOKEN")। curl2code -H "Authorization: Bearer ..." এবং --oauth2-bearer উভয় ফ্ল্যাগ থেকে Bearer token শনাক্ত করে। Basic auth এর জন্য -u user:pass ব্যবহার করুন।

Go-তে Content-Type হেডার কীভাবে সেট করবেন?

curl2code curl -H "Content-Type: application/json" URL কমান্ডকে সঠিক হেডার সহ net/http কোডে রূপান্তর করে: req.Header.Set("Content-Type", "application/json")-d ডেটার জন্য curl ডিফল্টভাবে application/x-www-form-urlencoded ব্যবহার করে; -F ফর্ম আপলোডের জন্য এটি multipart/form-data ব্যবহার করে। curl2code প্রতিটি রিকোয়েস্টকে সঠিক net/http API-তে ম্যাপ করে।

প্রয়োজনীয় লিঙ্ক

curl গাইড

curl-কে অন্যান্য ভাষায় রূপান্তর করুন