কার্ল পোস্ট - 411 দৈর্ঘ্য প্রয়োজন


29

আমাদের পিএইচপি তে একটি রেস্টফুল এপিআই রয়েছে। আমরা যদি অনুরোধ করি:

curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST

আমরা ফিরে পেতে:

411 - Length Required

যদিও আমরা কেবল -d ""অনুরোধটি জুড়ে দিলে এটি কার্যকর হয় এবং কোনও 411 ত্রুটি নেই। কার্ল কমান্ড -d যোগ করার প্রয়োজন নেই কি উপায় আছে?

আমরা লাইটটিপিডি ওয়েব সার্ভার ব্যবহার করছি, এবং বিশ্বাস করি এর লাইটটিপিডি নন পিএইচপি যারা 411 ত্রুটি ফিরিয়ে দিচ্ছে।

উত্তর:


47

আপনি সঠিক - লাইটটিপিডি কোনও শৈলীতে শিরোনামে 'কনটেন্ট-লেংথ' শিরোনাম সেট ছাড়া খালি বার্তা বডি সহ পোষ্ট অনুরোধগুলি সমর্থন করে না, এবং সিআরএল অনুরোধ পাঠায়। কে সঠিক তা নিয়ে পিছনে পিছনে যুক্তি রয়েছে তবে আমার মতে লাইটটিপিটি নষ্ট হয়েছে। কোনও সামগ্রী-দৈর্ঘ্য এবং কোনও স্থানান্তর-এনকোডিং সহ একটি পোস্ট পুরোপুরি আইনী নয় এবং কোনও বার্তার মূল অংশ নেই।

যোগ করার -d ""ফলে সিআরএলকে একটি Content-Length: 0শিরোনাম প্রেরণ করা হয় যা সমস্যার সমাধান করে।

আপনি লাইটটিপ পরিবর্তন করতে পারেন। 411 ত্রুটি ইস্যু করে পরিবর্তে সামগ্রীটির দৈর্ঘ্য শূন্যে সেট করুন এমন কোডটি সন্ধান করুন।


দুর্দান্ত ব্যাখ্যার জন্য ধন্যবাদ, সুতরাং কার্ল পাস করার জন্য কোনও পতাকা নেই -d ""বা সেট করার কোনও কনফিগার লাইটটিপিডি নির্দেশিকা নেই? -d ""ঠিক একটি হ্যাক মত দেখাচ্ছে।
জাস্টিন

1
এটি একটি হ্যাক। আপনি যদি সমস্যাটির বাস্তবের জন্য সমাধান করতে চান তবে আপনাকে লাইটটিপিডি সংশোধন করতে হবে। আপনি -d @/dev/nullযদি মনে করেন যে এটি আরও ভাল দেখাচ্ছে You আপনি ব্যবহার করতে পারেন -H "Content-Length: 0"। (আমি এই দুটিটিই পরীক্ষা করেছিলাম, তারা কাজ করে))
ডেভিড শোয়ার্জ

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