একটি পোষ্ট অনুরোধ করার জন্য সিআরএল কমান্ড-লাইন সিনট্যাক্সটি কী?


উত্তর:


2529

ক্ষেত্র সহ:

curl --data "param1=value1&param2=value2" https://example.com/resource.cgi

ক্ষেত্রগুলি স্বতন্ত্রভাবে নির্দিষ্ট করা সহ:

curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi

বহু-অংশযুক্ত:

curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi

ক্ষেত্র এবং একটি ফাইলের নাম সহ একাধিক অংশ:

curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi

ডেটা ছাড়াই:

curl --data '' https://example.com/resource.cgi

curl -X POST https://example.com/resource.cgi

curl --request POST https://example.com/resource.cgi

আরও তথ্যের জন্য দেখুন সিআরএল ম্যানুয়ালএকটি ওয়েব ব্রাউজার এমুলেট উপর কার্ল টিউটোরিয়াল সহায়ক।

Libcurl এর সাহায্যে curl_formadd()আপনার ফর্মটি স্বাভাবিক উপায়ে জমা দেওয়ার আগে তৈরি করতে ফাংশনটি ব্যবহার করুন । দেখুন libcurl ডকুমেন্টেশন দেখুন।

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

curl --tr-encoding -X POST -v -# -o output -T filename.dat \
  http://example.com/resource.cgi

-o outputপ্রয়োজন বোধ করা হয়, অন্যথায় কোনো অগ্রগতি বার প্রদর্শিত হবে।


7
@ লৌরিরন্ত --data-urlencode(কোনও ড্যাশ নেই), সাম্প্রতিক সংস্করণগুলিতে কমপক্ষে
ওয়েটইনফোর্যাটাইন

4
আপনার যদি একটি
পুট

3
আমার বুঝতে সমস্যা হচ্ছে ... আমি With Fieldsকখন এটি করব , কখন Multipartএবং কখন Without Data?
কোডিবাগস্টাইন

7
পরিবর্তে --dataআপনি ব্যবহার করতে পারেন -d
ব্যবহারকারী 35538

আমি ক্ষেত্রের একটি অ্যারে আছে। কিভাবে আমি এটি করতে পারব?
13:30 এআরুনবালান এনভি

503

এক্সএমএলযুক্ত একটি বিশ্রামের এইচটিটিপি পোস্টের জন্য:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"

বা JSON এর জন্য, এটি ব্যবহার করুন:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"

এটি নামের ফাইলটির সামগ্রীগুলি পড়বে filename.txtএবং পোস্টের অনুরোধ হিসাবে এটি প্রেরণ করবে।


13
@ টম-উইজসম্যান ব্যাখ্যা: curl -X POSTএকটি HTTP পোষ্ট অনুরোধ বোঝায়, -dপ্যারামিটার (দীর্ঘ সংস্করণ --data:) কার্লকে বলে যে এরপরে যা পোস্ট করা হবে তা পরামিতি হবে এবং @filenameফাইলের বিষয়বস্তুকে filenameপ্যারামিটার হিসাবে মনোনীত করে । এই অ্যাপ্রোচটি টুইটার, ফেসবুক, রিলে অন রুবি সহ বিভিন্ন অন্যান্য ওয়েব সার্ভিসেস পাশাপাশি কাউচডিবি-র মতো ডেটাবেজের এইচটিটিপি এপিআই-তে পাওয়া যেমন রিস্টালফুল এইচটিটিপি এপিআইগুলির সাথে সবচেয়ে ভাল কাজ করে। বাকি জন্য দাঁড়িয়েছে প্রতিনিধিত্বমূলক রাজ্য স্থানান্তর
soundmonster

আমরা কীভাবে প্রতিক্রিয়া এক্সএমএলকে এক লাইনে না দেখে ফর্ম্যাট করতে পারি?
ভাইটালি জেডনেভিচ

3
আমি মনে করি যে আপনি -X POSTযেহেতু ইঙ্গিতযুক্ত তা ছেড়ে দিতে পারেন -d
বেনজিফিশার

একাধিক শিরোনাম কীভাবে দেবেন?
কেয়া

একাধিক শিরোলেখ: "header2: 2" -H: কার্ল -H "1 header2" ...
Tomáš Kratochvíla

129

স্ট্যান্ডিনের সাথে ডেটা -d @-

উদাহরণ:

echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown

আউটপুট:

<p>Hello <strong>world</strong>!</p>

5
আপনার যদি ইতিমধ্যে ক্লিপবোর্ডে কোনও জেএসওএন অবজেক্ট থাকে তবে দুর্দান্ত
লুকা স্টেব

আরও ভাল: প্রতিধ্বনি "$ বার্তা" | কার্ল-এইচ "বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন /
জসন

66
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi 

কার্ল উদাহরণ ম্যানুয়ালটিতে পাওয়া উদাহরণ

অ্যাম্পারস্যান্ডদের জন্য% 26 ব্যবহার করুন যদিও উপরেরটি কাজ না করে:

curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi 

60

আপনি যদি কোনও সাইটে লগইন করতে চান তবে নিম্নলিখিতগুলি করুন:

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/

প্রথম অনুরোধটি "শিরোলেখ" ফাইলটিতে সেশন কুকি (যা সফল লগইনের উপর সরবরাহ করা হয়) সংরক্ষণ করে। এখন থেকে আপনি সেই কুকিটি কোনও ব্রাউজারে লগ ইন করার পরে আপনি সাধারণত যে ওয়েবসাইটটিতে অ্যাক্সেস করেন সেটির কোনও অংশে আপনাকে প্রমাণীকরণ করতে ব্যবহার করতে পারেন।


5
কার্লের ম্যান পেজ থেকে একটি নোট: 'The -c, - কুকি-জার বিকল্পটি কুকিগুলি সংরক্ষণ করার জন্য আরও ভাল উপায়' '
ম্যাক্সচলেপজিগ


25

আপনি যদি অলস হন তবে আপনার জন্য সমস্ত কাজ করার জন্য আপনি গুগল-ক্রোম পেতে পারেন।

  1. আপনি যে ফর্মটি জমা দিতে চান তা ডান ক্লিক করুন এবং নির্বাচন করুন নির্বাচন করুন । এটি ডিভুলস প্যানেলটি খুলবে।
  2. ডেভলগুলিতে নেটওয়ার্ক ট্যাবটি নির্বাচন করুন এবং সংরক্ষণ করুন লগ চেকবক্সটিকে টিক দিন।
  3. ফর্মটি জমা দিন এবং পদ্ধতিটি পোস্টের মাধ্যমে এন্ট্রিটি সনাক্ত করুন (যে কোনও কলামের শিরোনামে ডান ক্লিক করুন এবং নিশ্চিত হয়ে নিন যে পদ্ধতিটি পরীক্ষা করা হয়েছে)।
  4. পোস্টের ঠিক সঙ্গে সঙ্গতিপূর্ণ ক্লিক করুন, এবং নির্বাচন অনুলিপি > কার্ল যেমন কপি

ক্রোম ডেভোলগুলি: সিআরএল হিসাবে অনুলিপি করুন

ক্রোম সিআরএল সিন্টেক্সে সমস্ত অনুরোধের ডেটা অনুলিপি করবে।

ক্রোম ব্যবহার করে --data 'param1=hello&param2=world'আপনি কোন প্রকারের পোষ্ট অনুরোধটি প্রেরণ করতে চান তার উপর নির্ভর করে কোনও একক -dবা -Fপ্রতি পরামিতি ব্যবহার করে আপনি আরও পঠনযোগ্য করতে পারেন যা কোনটি application/x-www-form-urlencodedবা multipart/form-dataতদনুসারে হতে পারে ।

এটি পোস্ট-এড হিসাবে থাকবে application/x-www-form-urlencoded( বেশিরভাগ ফর্মের জন্য ব্যবহৃত হয় যা ফাইল আপলোডগুলি ধারণ করে না ):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -d param1=hello \
    -d name=dinsdale

একটি multipart/form-dataপোস্ট ব্যবহারের জন্য -F( সাধারণত ফাইল আপলোডগুলি ধারণ করে এমন ফর্মগুলির সাথে ব্যবহৃত হয়, বা যেখানে ক্ষেত্রের ক্রম গুরুত্বপূর্ণ, বা যেখানে একই নামের একাধিক ক্ষেত্র প্রয়োজন ):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -F param1=hello \
    -F name=dinsdale \
    -F name=piranha

User-Agentহেডার স্বাভাবিকভাবে প্রয়োজন নেই, কিন্তু আমি ধরো যদি এটা নিক্ষিপ্ত করেছি। ~/.curlrcউদাহরণস্বরূপ এমন ফাইল তৈরি করে আপনি প্রতিটি অনুরোধে ব্যবহারকারী এজেন্ট সেট করা এড়াতে পারবেনUser-Agent: "Mozilla/2.2"

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.