কার্ল-জিইটি এবং-এক্স পাবেন


126

কার্ল বিভিন্ন ধরণের HTTP পদ্ধতি কলগুলির একটি সিরিজ অফার করে যা একটি এক্স এর সাথে উপসর্গযুক্ত থাকে তবে এটি ছাড়াও একই পদ্ধতি সরবরাহ করে। আমি উভয় চেষ্টা করেছি এবং আমি পার্থক্যটি অনুভব করতে পারি না। এই দু'টি অপারেশনের পার্থক্য কীভাবে কেউ আমাকে দ্রুত ব্যাখ্যা করতে পারেন?

উত্তর:


263

ডিফল্টরূপে আপনি কোন অনুরোধ পদ্ধতিটি ব্যবহার করবেন তা স্পষ্টভাবে না বলে আপনি কার্ল ব্যবহার করেন। আপনি যদি এইচটিটিপি ইউআরএল পাস করেন তবে curl http://example.comএটি জিইটি ব্যবহার করবে। আপনি যদি ব্যবহার করেন -dবা -Fকার্ল পোষ্ট ব্যবহার -Iকরবেন তবে একটি শিরোনাম -Tঘটবে এবং এটিকে পুট তৈরি করবে।

কার্লের জন্য আপনার এই ডিফল্ট পছন্দগুলি নিয়ে যে কোনও কারণেই আপনি খুশি নন তবে আপনি সেই অনুরোধ পদ্ধতিগুলি নির্দিষ্ট করে ওভাররাইড করতে পারেন -X [WHATEVER]। আপনি উদাহরণস্বরূপ এটি করে একটি মোছা পাঠাতে পারেন curl -X DELETE [URL]

curl -X GET [URL]জিইটি যেভাবেই ব্যবহৃত হবে তা করা অর্থহীন । একই শিরাতে এটি করা অর্থহীন curl -X POST -d data [URL]...তবে আপনি একটি মজাদার এবং কিছুটা বিরল অনুরোধ করতে পারেন যা একটি GET অনুরোধে অনুরোধের সাথে কিছু অনুরোধ সহ একটি অনুরোধ-বডি প্রেরণ করে curl -X GET -d data [URL]

গভীরে খনন

curl -GET(একক ড্যাশ ব্যবহার করা) এই উদ্দেশ্যে কেবল ভুল। যে উল্লেখ সমতুল্য এর -G, -Eএবং -Tবিকল্প এবং যে সম্পূর্ণ ভিন্ন কিছু করতে হবে।

কার্লের অপশনও রয়েছে --getযাতে কারও সাথে বিভ্রান্তি না ঘটে। এটি-জি-র দীর্ঘ রূপ, যা নির্দিষ্ট -dকরা ডেটা কোনও পোষ্টের পরিবর্তে জিইটি অনুরোধে রূপান্তর করতে ব্যবহৃত হয় ।

(পরবর্তীকালে আমি এখানে আমার নিজের উত্তরটি কার্ল এফএকিউতে আবরণ করতে এখানে ব্যবহার করতে পারি ))

সতর্কবাণী

কার্ল এর আধুনিক সংস্করণগুলি -vব্যবহারকারীদের সচেতন করার জন্য - ভার্বোস মোড সক্ষম করা হলে ( ) - এক্স এর এই অপ্রয়োজনীয় এবং সম্ভাব্য ক্ষতিকারক ব্যবহার সম্পর্কে অবহিত করবে users আরও ব্যাখ্যা এবং এই ব্লগ পোস্টে অনুপ্রাণিত ।

-জি একটি পোষ্ট + বডিকে জিইটি + কোয়েরিতে রূপান্তর করে

আপনি কার্লকে -dবিকল্পগুলির একটি সেট রূপান্তর করতে এবং তাদেরকে পোস্টের মাধ্যমে অনুরোধ সংস্থায় প্রেরণের পরিবর্তে URL এর ক্যোয়ারী স্ট্রিংয়ের শেষে রেখে এবং ET -G ব্যবহার করে একটি জিইটি জারি করতে পারেন। এটার মত:

curl -d name=daniel -d grumpy=yes -G https://example.com/

5
-এক্সজিইটি কোনও বিকল্প হতে পারে না তবে এটি এটিকে স্পষ্ট করে দেয়।
এমটিসন

"ডিফল্ট করে আপনি স্পষ্টভাবে বলছে যা ব্যবহারের পদ্ধতি অনুরোধ ছাড়া কার্ল ব্যবহার করুন। আপনি শুধু কার্ল মত একটি HTTP URL- এ পাস যদি example.com এটি পেতে ব্যবহার করবে। আপনি -d বা -F কার্ল ব্যবহার করেন তাহলে পোষ্ট ব্যবহার করবে, -আমি কারণ হবে একটি হেড এবং-টি এটিকে একটি পুট তৈরি করবে। " তোমার যা যা জানা উচিত।
ডোনাটো

4
যখনই আপনার কাছে বিকল্প থাকে তবে স্পষ্টতই অন্তর্নিহিতের থেকে ভাল। তাড়াতাড়ি ব্যর্থ, দ্রুত ব্যর্থ, দুর্ঘটনা হ্রাস, ডিবাগ সময় হ্রাস। কমান্ড লাইনে টাইপ করার সময় আপনার কাছে এড়িয়ে যাওয়ার একমাত্র অজুহাত। যে কোনও স্ক্রিপ্টের কঠোরভাবে অপ্রয়োজনীয় হওয়ার পরেও -XGET নির্দিষ্ট করা উচিত।
ব্যাকগ্যামন

1
@ ব্যাকগ্যামন যদি তারা তা করে তবে তারা এটি ভুল করছে। তবে নিশ্চিত, তারা পারে।
ড্যানিয়েল স্টেনবার্গ

2

-এক্স [আপনার পদ্ধতি]
এক্স আপনাকে ডিফল্ট 'গেট' ওভাররাইড করতে দেয়

** ছোট হাতের xঅক্ষরে বড় হাত থেকে সংশোধন করা হয়েছেX


2
এমনকি "এই দুটি ক্রিয়াকলাপ কীভাবে পৃথক হয়" এই প্রশ্নের উত্তর দেওয়ার চেষ্টাও করে না।
মেলিবিয়াস

1

এইচটিটিপি অনুরোধে কেবল ব্যবহারের -X [WHATEVER]অনুরোধের পদ্ধতিটির স্ট্রিং পরিবর্তন করে । এটি দুটি উদাহরণের সাথে বোঝা সহজ - একটিতে -X [WHATEVER]এবং এর সাথে একটি - এবং সম্পর্কিত HTTP অনুরোধ শিরোনামগুলির জন্য:

# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*

# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.