কম্পিউটার

CURL দিয়ে POST অনুরোধ করা

cURL একটি প্যাকেজ যা দূরবর্তী সার্ভারের মধ্যে ডেটা স্থানান্তর করার জন্য বিভিন্ন সরঞ্জাম ধারণ করে। এটি এফটিপি, উইন্ডোজ শেয়ার, মেল সার্ভার এবং অবশ্যই HTTP ব্যবহার করে ওয়েব সার্ভার সমর্থন করে।

Linux শেল থেকে একটি ফাইল ডাউনলোড করা সাধারণত cURL ব্যবহার করে সম্পন্ন করা হয় এইরকম কমান্ড:

curl https://example.org/file.zip --output file.zip

এটি GET পদ্ধতি ব্যবহার করে ফাইলের জন্য অনুরোধ করে এবং সহজভাবে এটি ডাউনলোড করে।

এই নিবন্ধটি ফর্ম ডেটা সহ একটি POST অনুরোধ করার জন্য কীভাবে সিআরএল ব্যবহার করতে হয় তার বিশদ বিবরণ দেবে। এটি কার্যকর হতে পারে যদি সার্ভারের একটি ফাইল ডাউনলোড করার জন্য শংসাপত্রের প্রয়োজন হয়, অথবা যদি আপনি একটি ডাটাবেসে স্টোরেজের জন্য একটি ওয়েব ফর্মে ডেটা জমা দেওয়ার জন্য একটি স্বয়ংক্রিয় স্ক্রিপ্ট তৈরি করেন৷

এটি একটি REST API এর সাথে ব্যবহারের জন্য একটি ফাইল থেকে XML বা JSON ডেটা জমা দেওয়ার উপরও স্পর্শ করবে৷

cURL ব্যবহার করে URL এনকোড করা ক্ষেত্র পোস্ট করা

আমাদের উদাহরণের জন্য, আমরা নিম্নলিখিত ফর্ম ডেটা জমা দেব:

ক্ষেত্রের নাম মান
ক্ষেত্র1 মান1
ক্ষেত্র2 মান2

ডেটা URL এ জমা দেওয়া হবে https://example.org/submit.php . example.org-এ ঠিকানা সত্যিই বিদ্যমান নয়, এটি শুধুমাত্র একটি ওয়েব ডোমেন যা আমরা নিরাপদে উদাহরণের জন্য ব্যবহার করতে পারি। submit.php এটি একটি ফর্ম জমা স্ক্রিপ্টের একটি উদাহরণ নাম এবং নির্দিষ্ট কিছু উল্লেখ করে না৷

ফর্ম ডেটা প্রতিটি ফর্ম ফিল্ডের সাথে একটি একক স্ট্রিং হিসাবে POST অনুরোধে পাস করা যেতে পারে এবং এর মান name=value দ্বারা সংজ্ঞায়িত করা হয় , এবং সেগুলিকে & দিয়ে আলাদা করা –ডেটা ব্যবহার করে বিকল্প:

curl --data "field1=value1&field2=value2" https://example.org/submit.php

যাইহোক, এটি আদর্শ নয়, কারণ এর জন্য ইউআরএল এনকোড করা প্রয়োজন ডেটা - অর্থাৎ, যে ডেটাতে স্পেস এবং স্ল্যাশগুলি বিশেষ কোড দিয়ে প্রতিস্থাপিত হয়েছে তা HTTP-র মাধ্যমে পাঠানোর জন্য ফর্ম্যাট করার জন্য। আপনি ম্যানুয়ালি এটি করতে পারেন, কিন্তু cURL আপনার জন্য –data-urlencode ব্যবহার করে এটি করতে পারে :

curl --data-urlencode "field1=value1&field2=value2" https://example.org/submit.php

ক্ষেত্রের নামগুলি ইউআরএল এনকোড করা হয় না - যদি আপনি সেগুলিকে এনকোড করতে চান তাহলে একটি = দিয়ে প্রিফিক্স করুন :

curl --data-urlencode "=user name=Linus Torvalds" https://example.org

আমরা –data-urlencode ব্যবহার করব –ডেটা-এর পরিবর্তে নিম্নলিখিত উদাহরণগুলির জন্য জিনিষ সহজ করতে POST অনুরোধ করার জন্য।

ইউআরএল এনকোড করা ক্ষেত্র আলাদাভাবে নির্দিষ্ট করা হয়েছে

প্রতিটি ফর্ম ক্ষেত্রের নাম/মান আলাদাভাবে পাস করা যেতে পারে - এটি জিনিসগুলিকে পড়তে অনেক সহজ করে তোলে:

curl --data-urlencode "field1=value1" --data-urlencode "field2=value2" https://example.org/submit.php

cURL ব্যবহার করে মাল্টিপার্ট/ফাইল আপলোড করুন

ফাইলগুলি সহ মাল্টিপার্ট ফর্মের অনুরোধ, –ফর্ম ব্যবহার করে POST এর মাধ্যমে জমা দেওয়া যেতে পারে বিকল্প নিচের উদাহরণটি ফাইল আপলোড ফর্ম ফিল্ডে myfile.txt আপলোড করবে:

curl --form "admin@wsxdn.com" https://example.org/submit.php

ক্ষেত্র এবং ফাইল, এবং ফাইলের নাম সহ মাল্টিপার্ট

ফর্ম ক্ষেত্রের নাম এবং মান জোড়া একটি ফাইল আপলোড, এবং একটি ফাইলের নাম সহ অন্তর্ভুক্ত করা যেতে পারে একটি আপলোড করা ফাইলের জন্য যদি আপনি এটি পরিবর্তন করতে চান:

curl --form "admin@wsxdn.com;filename=newfilename.txt" --form field1=value1 --form field2=value2 https://example.org/submit.php

ডেটা ছাড়া

কোনো ডেটা ছাড়াই একটি POST অনুরোধ করতে, কেবল একটি খালি স্ট্রিং পাস করুন:

curl --data-urlencode '' https://example.org/submit.php

ফাইল আপলোডের অগ্রগতি দেখানো হচ্ছে

একটি আপলোড কিভাবে অগ্রসর হচ্ছে তার উপর নজর রাখতে, একটি -ও আউটপুট যোগ করুন একটি অগ্রগতি বার দেখানোর বিকল্প:

curl --tr-encoding -X POST -v -# -o output -T myfile.dat https://example.org/submit.php

একটি ফাইলে সংরক্ষিত ডেটা জমা দেওয়া

একটি ফাইলে ইতিমধ্যেই সংরক্ষিত ডেটা আপলোড করা হলে, এটিকে একটি cURL কমান্ডে পার্স করার পরিবর্তে সবগুলি একবারে জমা দেওয়া যেতে পারে:

curl --data-urlencode admin@wsxdn.com https://example.org/submit.php

JSON এবং XML ডেটা যথাযথ হেডার যোগ করে প্রোগ্রাম্যাটিক API পরিষেবাগুলির জন্য পোস্ট করা যেতে পারে:

curl -X POST --data-urlencode @myfile.txt https://example.org/submit.php --header "Content-Type:text/xml"

curl -X POST --data-urlencode @myfile.txt https://example.org/submit.php --header "Content-Type:application/json"

উপসংহার

আপনি যদি প্রায়শই Linux কমান্ড লাইনে কাজ করেন তাহলে cURL আয়ত্ত করা গুরুত্বপূর্ণ। এটি অনেকগুলি কাজ সম্পাদন করতে পারে যার জন্য আপনার সাধারণত একটি সম্পূর্ণ ওয়েব ব্রাউজার প্রয়োজন হতে পারে, এটি প্রোগ্রাম্যাটিক API-এর সাথে ইন্টারঅ্যাক্ট করার জন্য এবং আপনার নিজস্ব সার্ভারে এবং থেকে ডেটা স্থানান্তর করার জন্য।

আমাদের অন্যান্য লিনাক্স শেল এবং স্ক্রিপ্টিং নিবন্ধগুলি এখানে দেখুন!


  1. কলাম হেডার সহ এক্সেলে এসকিউএল ডেটা রপ্তানি করুন

  2. ডেটা স্ট্রাকচারে চেইনিংয়ের সাথে হ্যাশিং

  3. জাভা দিয়ে একটি মাইএসকিউএল ডাটাবেসে ডেটা কীভাবে আপডেট করবেন?

  4. জাভা দিয়ে একটি মাইএসকিউএল ডাটাবেসের ডেটা কীভাবে মুছবেন?