cURL হল একটি ফ্রি এবং ওপেন সোর্স কমান্ড-লাইন ইউটিলিটি যা ব্যবহারকারীর ন্যূনতম ইন্টারঅ্যাকশন সহ দূরবর্তী হোস্টে ডেটা স্থানান্তর করতে ব্যবহৃত হয়। CURL HTTP, FTP, SCP, এবং SFTP- এর মতো প্রাথমিক প্রোটোকলের সাথে কাজ করে।
এটি ব্যবহারকারীদের একক কমান্ড বা ব্যাশ স্ক্রিপ্ট ব্যবহার করে ডেটা আপলোড এবং ডাউনলোড করতে দেয়। এটি ব্যবহারকারী-প্রমাণীকরণ, প্রক্সি টানেলিং, ডাউনলোড সারসংকলন, ফর্ম-ভিত্তিক আপলোড, এসএসএল শংসাপত্র এবং আরও অনেক কিছুর মতো বৈশিষ্ট্য সরবরাহ করে। এটা বলা নিরাপদ যে CURL একটি HTTP ক্লায়েন্টের চেয়ে বেশি।
এই টিউটোরিয়ালটি আপনাকে একটি CURL কার্যকারিতার মাধ্যমে নিয়ে যাবে যা ব্যবহারকারীদের ফাইল ডেটা ব্যবহার করে HTTP পোস্ট অনুরোধগুলি সম্পাদন করতে দেয়।
আমরা শুরু করার আগে, আমি উল্লেখ করি যে এটি কার্লের জন্য একটি শিক্ষানবিস নির্দেশিকা নয়; আপনার পূর্বের জ্ঞানের একটি ডিগ্রী প্রয়োজন, বিশেষ করে নেটওয়ার্ক প্রোটোকল, HTTP অনুরোধ এবং আরও অনেক কিছু সম্পর্কে জ্ঞান।
POST অনুরোধগুলি সম্পাদন করার জন্য আমরা CURL ব্যবহারে ডুব দেওয়ার আগে, আসুন প্রথমে সেটআপ করি।
কিভাবে CURL ইনস্টল করবেন
বেশিরভাগ ক্ষেত্রে, আপনি প্রধান লিনাক্স বিতরণে ডিফল্টভাবে cURL ইনস্টল করা পাবেন। আপনার cURL আছে তা নিশ্চিত করতে, কমান্ডটি ব্যবহার করুন
কার্ল hel- সাহায্যযদি আপনি একটি ত্রুটি পান:
-বাশ: কার্ল:কমান্ডপাওয়া যায়নি
এগিয়ে যাওয়ার আগে আপনাকে এটি ইনস্টল করতে হবে।
নীচের কমান্ডগুলিতে দেখানো হিসাবে ইনস্টলেশন সম্পূর্ণ করতে ডিফল্ট প্যাকেজ ম্যানেজার ব্যবহার করুন:
sudo apt-get updatesudo apt-get installকার্ল-এবং
CURL সহ একটি ফাইল থেকে ডেটা কিভাবে পোস্ট করা যায় তা নিয়ে আলোচনা করার আগে, আমাকে POST অনুরোধ সম্পর্কে সংক্ষেপে কথা বলার অনুমতি দিন। যথারীতি, যদি আপনি ইতিমধ্যে এর সাথে পরিচিত হন, তাহলে আপনি নির্দ্বিধায় এগিয়ে যেতে পারেন; অন্যথায়, কাছাকাছি থাকুন।
কার্ল পোস্ট অনুরোধ
রিসোর্স তৈরি বা আপডেট করার জন্য দূরবর্তী হোস্টে ডেটা পাঠাতে ব্যবহৃত HTTP পোস্ট অনুরোধটি হল সবচেয়ে জনপ্রিয় HTTP/HTTPS অনুরোধ পদ্ধতি।
এখন :
দয়া করে PUT এর সাথে পদ্ধতিটি বিভ্রান্ত করবেন না; যদিও তারা বেশ অনুরূপ, তাদের তাদের পার্থক্য আছে।
POST রিকোয়েস্ট ব্যবহার করে পাঠানো ডেটা মূলত HTTP রিকোয়েস্টের রিকোয়েস্ট বডিতে সংরক্ষিত থাকে।
উদাহরণস্বরূপ, নীচের পোস্ট অনুরোধটি বিবেচনা করুন যা ব্যবহারকারীর নাম এবং পাসওয়ার্ডের পাশাপাশি তাদের মান পাঠায়।
পোস্ট/সীমাবদ্ধ/login.php HTTP/1.1হোস্ট: linuxhint.com বিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/x-www-form-urlencodedব্যবহারকারীর নাম= লিনাক্সহিন্ট&পাসওয়ার্ড= পাসওয়ার্ডCURL ব্যবহার করে উপরের POST রিকোয়েস্ট পাঠানোর জন্য, আমরা কমান্ডগুলি এইভাবে নির্দিষ্ট করতে পারি:
কার্ল-এক্সপোস্ট-ডি ব্যবহারকারীর নাম= লিনাক্সহিন্ট&পাসওয়ার্ড= পাসওয়ার্ড https://linuxhint.com/সীমাবদ্ধ/login.phpউপরের কমান্ডে, আমরা -d বিকল্পটি ব্যবহার করে cURL- কে ডিফল্ট হেডার অন্তর্ভুক্ত করতে বলি, যা বিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/x-www-form-urlencoded
-X বিকল্পটি HTTP অনুরোধ পদ্ধতি ব্যবহার করার জন্য নির্দিষ্ট করে, এই ক্ষেত্রে, HTTP POST অনুরোধ।
cURL বিষয়বস্তু-প্রকার নির্দিষ্ট করুন
কিছু ক্ষেত্রে, আমরা অনুরোধ পাঠানোর সময় বিষয়বস্তুর ধরন [স্পষ্টভাবে] উল্লেখ করতে চাই। হেডারের বিষয়বস্তু-প্রকার সত্তা আমরা যে রিসোর্স পাঠাচ্ছি তার মিডিয়ার ধরন নির্দিষ্ট করে। মিডিয়া টাইপ সাধারণভাবে MIME প্রকার নামেও পরিচিত।
আপনি যদি MIME প্রকারগুলি সম্পর্কে জানতে চান, তাহলে নীচে প্রদত্ত সম্পদটি বিবেচনা করুন:
https://linkfy.to/IANA-MIME-Types
একটি cURL অনুরোধে বিষয়বস্তু -প্রকার নির্দিষ্ট করতে, আমরা -H পতাকা ব্যবহার করতে পারি। উদাহরণস্বরূপ, আসুন আমরা MIME ধরনের আবেদন/JSON পাঠাই।
কার্ল-এক্সপোস্ট-ডি {ব্যবহারকারীর নাম: লিনাক্সহিন্ট, পাসওয়ার্ড: পাসওয়ার্ড} -হবিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json https://linuxhint.com/সীমাবদ্ধ/login.phpউপরে উল্লেখ করা হয়েছে যে আমরা প্রদত্ত URL- এ একটি JSON অবজেক্ট পাঠাতে চাই। আপনি এটি একটি JSON ফাইল থেকে মানগুলি পড়তে বা কাঁচা হিসাবে পাঠাতে ব্যবহার করতে পারেন।
কিভাবে একটি ফাইল থেকে ডেটা পড়বেন
ধরুন আপনি CURL ব্যবহার করে কমান্ড-লাইনে অনুরোধ করতে চান, কিন্তু আপনার কাছে একটি ফাইলে সংরক্ষিত ডেটা আছে। আপনি মিডিয়া টাইপ নির্দিষ্ট করতে কন্টেন্ট-টাইপ ব্যবহার করতে পারেন এবং তারপর ডেটা ধারণকারী ফাইল পাথ পাস করতে পারেন। এই উদাহরণের জন্য, আমি একটি JSON বস্তু ব্যবহার করে চিত্রিত করব।
JSON ফাইল (data.json) নিম্নলিখিত মান ধারণ করে:
{'ব্যবহারকারীর নাম':'লিনাক্সহিন্ট',
'পাসওয়ার্ড':'পাসওয়ার্ড'
}
একটি JSON ফাইল থেকে এই ডেটা পাঠাতে, আমরা -d ব্যবহার করতে পারি এবং তারপর নীচের কমান্ডে দেখানো ফাইলের নাম পাস করতে পারি:
কার্ল-এক্সপোস্ট-হবিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json-ডি ।data.json https://linuxhint.com/সীমাবদ্ধ/login.phpআপনি – ডেটা-বাইনারি বিকল্পটিও ব্যবহার করতে পারেন।
কার্ল-এক্সপোস্ট-হবিষয়বস্তু-প্রকার: অ্যাপ্লিকেশন/json-ডেটা-বাইনারি @ /বাড়ি/ব্যবহারকারী/data.json https://linuxhint.com/সীমাবদ্ধ/login.phpআপনি ডেটা পাঠাতে একটি টেক্সট ফাইলও ব্যবহার করতে পারেন; আপনাকে যা নির্দিষ্ট করতে হবে তা হল পাঠ্য/প্লেইন হিসাবে বিষয়বস্তু-প্রকার।
উদাহরণস্বরূপ, নিম্নলিখিত মান সম্বলিত একটি টেক্সট ফাইল (data.txt)
ব্যবহারকারীর নাম= লিনাক্সহিন্ট&পাসওয়ার্ড= পাসওয়ার্ডCURL কমান্ড ব্যবহার করে, কেবল অনুরোধটি পাঠান:
কার্ল-এক্সপোস্ট-হবিষয়বস্তু-প্রকার: পাঠ্য/সমতল-ডিdata.txt https://linuxhint.com/সীমাবদ্ধ/login.phpআপনি এক্সএমএল, এইচটিএমএল এবং আরও অনেক কিছু ব্যবহার করতে পারেন।
উপসংহার
এই টিউটোরিয়ালে, আমরা আলোচনা করেছি কিভাবে POST অনুরোধ করা যায় এবং বিভিন্ন ফরম্যাটে ডেটা পাস করা যায়। এটা মনে রাখা ভাল যে খুব শক্তিশালী হওয়ার পাশাপাশি, CURL খুব নমনীয়। এটি একটি একক কমান্ডে বিকল্পগুলির সংগ্রহকে একত্রিত করে শক্তিশালী অনুরোধ তৈরি করতে পারে। আরও তথ্যের জন্য, আমি cURL ডকুমেন্টেশন সুপারিশ করি কারণ এটি ভালভাবে লেখা হয়েছে।
পড়ার জন্য আপনাকে ধন্যবাদ, এবং cURL নিয়ে মজা করুন।