উত্তর:
অনেকগুলি লিনাক্স / ইউনিক্স সিস্টেমে আপনার সিউডোকোডটি যে কোনও শেলটিতে কেবলমাত্র কাজ করবে, যদিও আপনার পাথগুলি সত্যই পুরো ইউআরএল হওয়া উচিত।
উদাহরণস্বরূপ, ডেবিয়ান ভিত্তিক সিস্টেমে, প্যাকেজ libwww-perl
lwp-অনুরোধ যা বলা হয় তিন symlinks ইনস্টল /usr/bin/GET
, /usr/bin/HEAD
এবং /usr/bin/POST
। এগুলি আপনার প্রত্যাশা মতো করে do ওপেনসেজের perl-libwww-perl
প্যাকেজের সাম্প্রতিক সংস্করণগুলি সিমলিংকগুলি (যা সম্ভবত কোনও বাগ) বাদ দেয়, তাই আপনাকে সেগুলি নিজেই তৈরি করতে হবে বা lwp-request
সরাসরি ব্যবহার করতে হবে । সাধারণত এবং বহু বছর ধরে, এটি বেশ নিরাপদ অনুমান ছিল যে জিইটি, হেড, এবং পোষ্ট এক্সিকিউটেবলগুলি ইউনিক্সয়েড সিস্টেমে উপলব্ধ।
অবশ্যই আপনি curl
এই সমস্ত কাজের জন্যও ব্যবহার করতে পারেন , সুতরাং সম্ভবত আপনি বুঝতে পারেন না যে আপনি কেন বশয়ের মতো একটি কমান্ড লাইন শেল ইন্টারেক্টিভ নয়।
উত্তরের জন্য ধন্যবাদ।
আশেপাশে গুগল করার পরে, আমি বিশ্রাম পেয়েছি , এটি কার্ল সরঞ্জামের চারপাশে একটি শেল স্ক্রিপ্ট মোড়ক । এটিই আমি চাই। এটি শেল স্ক্রিপ্টের 155 লাইন, এবং আমি যখন এটি চালনা করি তখন আমি জিইটি, পুট, পোস্ট, ডিলেট এবং বিকল্পগুলির জন্য ফাংশন পাই। এই ফাংশনগুলি আমার পথে পাওয়া কার্ল প্রোগ্রামের চারপাশে কেবল মোড়ক।
এটি ম্যাকোএসএক্স ব্যাশে এর মতো কাজ করে:
$ . resty
$ resty https://api.example.org
https://api.myhost.com*
$ GET /v1/o/orgname -u myusername:password
{
"createdAt" : 1347007133508,
"createdBy" : "admin",
"displayName" : "orgname",
"environments" : [ "test", "prod" ],
"lastModifiedAt" : 1347007133508,
"lastModifiedBy" : "admin",
"name" : "orgname",
"properties" : {
"propertyList" : [ ... ]
},
}
$
সেখানে প্রথম লাইনটি বর্তমান শেলের মধ্যে কমান্ডগুলি চালায়।
পরের লাইন, "রেস্টি" কমান্ডটি ইউআরএল বেস সেট করে। এরপরে, জিইটি, পুট, পোস্ট ... এর যে কোনও কল ... স্পষ্টভাবে সেই ভিত্তিকে উল্লেখ করে। আমি এমন একটি উদাহরণ দেখিয়েছি যা প্রিটিচাইড জেএসওএনকে নির্গত করে। আমি মনে করি যদি আপনার সার্ভারটি জিনসোনড জেএসওএন নির্গত করে তবে আপনি আউটপুটটি পাইপ করে কোনও বহিরাগত স্ক্রিপ্টের মাধ্যমে প্রিন্ট করতে পারেন।
হোস্ট-ভিত্তিক পছন্দগুলির জন্য সমর্থন রয়েছে। মনে করুন আপনার টার্গেটের হোস্টটি api.example.org। ~ / .Resty / api.example.org নামক একটি ফাইল সিটি করুন এবং সেখানে ,োকান, লাইনগুলি আর্গুমেন্টগুলি নির্দিষ্ট করে যা সেই নাম দিয়ে হোস্টের কাছে প্রতিটি কার্লের কাছে পাঠানো উচিত। প্রতিটি http ক্রিয়াপদ তার নিজস্ব লাইন পায়। সুতরাং, ফাইলটিতে এই সামগ্রীটি প্রবেশ করানো:
GET -u myusername:mypassword --write-out "\nStatus = %{http_code}\n"
... মানে যে প্রতিটি সময় আমি একটা পেতে পারি যখন api.example.org বেস হোস্টনাম হয়, কার্ল কমান্ড পরোক্ষভাবে ব্যবহার করা হবে -u
এবং --write-out
args সেখানে দেখানো হয়েছে। (-উইজিক লেখার জন্য)।
অন্য উদাহরণ হিসাবে, আপনি সেই ফাইলটিতে স্বীকৃতি শিরোনাম নির্দিষ্ট করতে পারেন, যাতে আপনি সর্বদা এক্সএমএলকে অনুরোধ করেন:
GET --header "Accept: application/xml"
যে কোনও কার্ল কমান্ড লাইন আরগটি সেই পছন্দগুলি ফাইলটিতে সমর্থিত। হোস্ট + ক্রিয়া টিপলের জন্য সমস্ত কার্ল আরগগুলি পছন্দসমূহ ফাইলে একটি লাইনে যেতে হবে।
কুশলী।
lftp,:
$ lftp http://repo.xplico.org/pool/
cd ok, cwd=/pool
lftp repo.xplico.org:/pool> ls
drwxr-xr-x -- /
drwxr-xr-x - 2012-02-13 09:48 main
lftp repo.xplico.org:/pool> cd main
lftp repo.xplico.org:/pool/main> ls
drwxr-xr-x -- ..
drwxr-xr-x - 2012-02-13 09:48 x
ডিরেক্টরি তালিকাগুলি কেবল সেই ওয়েবসাইটগুলির জন্য কাজ করে যা ডিরেক্টরি সূচকগুলি প্রেরণ করে। তবে তা না করলেও আপনি get
স্বতন্ত্র ফাইলগুলি পেতে কমান্ডটি ব্যবহার করতে পারেন ।
আপনি নেটক্যাট ব্যবহার করতে পারেন ।
নেটকাট একটি সাধারণ ইউনিক্স ইউটিলিটি যা টিসিপি বা ইউডিপি প্রোটোকল ব্যবহার করে নেট‐ ওয়ার্ক সংযোগ জুড়ে ডেটা পড়ে এবং লেখায়।
ভিএলসি হোম পৃষ্ঠাটি পুনরুদ্ধার করার জন্য এখানে একটি উদাহরণ দেওয়া আছে
nc www.videolan.org 80
GET http://www.videolan.org/vlc/ HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 16 Oct 2012 07:34:48 GMT
Server: Apache/2.2.16 (Debian)
Content-Location: index.html
[…]
এইচটিএমএল এর বাকি অংশটি কনসোলের আউটপুট। দ্রষ্টব্য: আপনার পরে Return দু'বার টাইপ করতে হবে HTTP/1.0
।
আপনি ইন্টারেক্টিভ ব্যবহার করতে পারেন shells
উভয় সঙ্গে python
বা perl
:
ইন পার্ল
$ perl -MWWW::Mechanize::Shell -eshell
(no url)> get http://cnn.com
Retrieving http://cnn.com(200)
http://edition.cnn.com/> title
CNN.com International - Breaking, World, Business, Sports, Entertainment and Video News
http://edition.cnn.com/> content
(...)
দেখুন perldoc WWW::Mechanize::Shell
বা http://search.cpan.org/~corion/WWW-Mechanize- শেল-০.০২ / লিবি / ডাব্লুডাব্লুডাব্লু / মেকানাইজ / শেল.পিএম
ইন পাইথন :
$ python -i -c 'import mechanize; br = mechanize.Browser(factory=mechanize.RobustFactory())'
>>> br.open("http://xkcd.com/")
<response_seek_wrapper at 0x2824a28 whose wrapped object = <closeable_response at 0x27c2710 whose fp = <socket._fileobject object at 0x27be3d0>>>
>>> br.title()
'xkcd: Identity'
>>> print br.response().read()
(...)
হ্যাঁ, আপনি "--config" বিকল্পটি ব্যবহার করতে পারেন:
স্ট্যান্ডিন থেকে ফাইলটি কার্ল পড়ার জন্য -K, --config হিসাবে ফাইলের নাম উল্লেখ করুন -
উদাহরণ:
$ curl -K-
url https://github.com/blog
remote-name
<Ctrl + D>
কমান্ড লাইনে ইন্টারেক্টিভ ব্রাউজিংয়ের জন্য আমি লিংকটি বেশ পছন্দ করি । যদিও এটি কোনও কাঁচা এইচটিএমএল সরঞ্জামের চেয়ে সম্পূর্ণ ফুটিয়ে তোলা ব্রাউজার (যা একটি এনক্রোস অ্যাপ্লিকেশনে ফিট করে) ..
আমি এসএসএলের আগে কাঁচা এইচটিএমএল কমান্ড পরীক্ষা করেছি, যার জন্য আমি ব্যবহার করেছি openssl
, তবে এটি কেবল একবারে একটি কমান্ডের অনুমতি দেয় ..
> openssl s_client -quiet -connect google.com:443
GET /
... HTML response
> openssl s_client -quiet -connect myprivateserver.com:443
POST /thing/pool ...
... response
ওপেনসেল এর s_client বিকল্প সম্পর্কে আরও তথ্যের man s_client
জন্য বিশদ রয়েছে।
get
কমান্ড ফাইল ডাউনলোড করবেcat
পর্দায় ইচ্ছা আউটপুট ফাইল। একটি HTTP পেতেpost
আপনার মত কিছু ব্যবহার করতে পারেন:quote post post.php x=1&y=z
।