পোস্টম্যানের সাথে কাঁচা জসনের মাধ্যমে পোস্টের ডেটা প্রেরণ করুন


107

আমি পোস্টম্যান পেয়েছি (যা ক্রোমে খোলেন না) এবং আমি কাঁচা জেসসন ব্যবহার করে একটি পোষ্ট অনুরোধ করার চেষ্টা করছি।

বডি ট্যাবে আমি "কাঁচা" নির্বাচিত এবং এই বডি সহ "জেএসএন (অ্যাপ্লিকেশন / জেসসন)" পেয়েছি:

{
    "foo": "bar"
}

শিরোনামটির জন্য আমার 1 টি, Content-Type: application/json

পিএইচপি সাইডে আমি print_r($_POST);এখনই করছি, এবং আমি একটি খালি অ্যারে পাচ্ছি।


যদি আমি jQuery ব্যবহার করি এবং করি:

$.ajax({
    "type": "POST",
    "url": "/rest/index.php",
    "data": {
        "foo": "bar"
    }
}).done(function (d) {
    console.log(d);
});

আমি প্রত্যাশার মতো পাচ্ছি:

Array
(
    [foo] => bar
)

তাহলে কেন এটি পোস্টম্যানের সাথে কাজ করছে না?


পোস্টম্যানের স্ক্রিনশট:

এখানে চিত্র বর্ণনা লিখুন

এবং শিরোনাম:

এখানে চিত্র বর্ণনা লিখুন


পরিবর্তে print _PQST এবং var_dump () এর পরিবর্তে মুদ্রণ_আর () চেষ্টা করুন
গভীর

@ ডিপ আমি জকিউয়ারি array(1) {["foo"]=> string(3) "bar"}এবং এখনও পোস্টম্যানের সাথে একটি খালি অ্যারে নিয়ে যাচ্ছি:array(0) {}
ডালাস

সুতরাং পোস্টম্যান অনুরোধ প্রেরণ করছেন না
গভীর

আপনার পোস্টে @smerny fieldsএবং fooঅভ্যস্ত ম্যাচ এইভাবে এটি কাজ করে না, আমি নিশ্চিত না যদি এটি একটি টাইপো হয় হবে কিন্তু নিশ্চিত করুন তারা মেলে
Meda

@ মিডা, ঠিক এটি একটি টাইপো ছিল, তবে আমার যদি ক্ষেত্রগুলি থাকত তবে তারপরে $ _REQQUEST বা _P _POST
ডালাসের

উত্তর:


38

jQueryকাঁচা পড়ার মত নয় , JSONআপনাকে পিএইচপি এ ডিকোড করতে হবে।

print_r(json_decode(file_get_contents("php://input"), true));

php://input কেবল পঠনযোগ্য স্ট্রিম যা আপনাকে অনুরোধের বডি থেকে কাঁচা ডেটা পড়তে দেয়।

$_POSTফর্ম ভেরিয়েবল হয়, আপনার তখন formরেডিওব্লটন postmanব্যবহার করতে হবে:

foo=bar&foo2=bar2

এর jsonসাথে কাঁচা পোস্ট করতে jquery:

$.ajax({
    "url": "/rest/index.php",
    'data': JSON.stringify({foo:'bar'}),
    'type': 'POST',
    'contentType': 'application/json'
});

হ্যাঁ এক্সটল্টি পোস্টিং
জসন

43

বাইনারি পাশের ড্রপ ডাউন থেকে কেবল JSON বিকল্পটি পরীক্ষা করে দেখুন; আপনি যখন কাঁচা ক্লিক করেন। এটি করা উচিত

দক্ষতা synon পাসম্যান পোস্টম্যান যাও


4
এটি মোটামুটি পুরানো পোস্ট .. তবে আপনি যদি প্রশ্নটির দিকে তাকান তবে আপনি দেখতে পাবেন যে আমি ঠিক এটি করেছি। সমস্যা এবং সমাধান আরও ভালভাবে বুঝতে আপনি প্রশ্ন, নির্বাচিত উত্তর এবং নির্বাচিত উত্তরের মন্তব্যগুলি পড়তে চাইতে পারেন।
ডালাস

1
অবশ্যই, তবে এটি আসলে আমার যে সমস্যাটি ছিল তা পিনপাইসড করেছে; আমি ইতিমধ্যে শিরোনাম বিভাগে উল্লিখিত থাকা সত্ত্বেও, অ্যাপ্লিকেশন / জসন নয়, আমি "পাঠ্য" নির্বাচন করেছি। এটা বিভ্রান্তিকর; আপনি যদি "পাঠ্য" চয়ন করেন, তবে জেএসওএন সহ পুরো এইচটিটিপি পোস্ট "কোড" প্রদর্শিত হবে, যা আমি কাজ করার প্রত্যাশা করছিলাম, যেহেতু এটি কেবল জসন নয়, একটি সম্পূর্ণ পোস্ট পোস্ট।
টেড

7

মেডার উত্তর সম্পূর্ণরূপে বৈধ, তবে আমি কোডটি অনুলিপি করার সময় আমি একটি ত্রুটি পেয়েছি!

কোথাও কোথাও "php://input"সেখানে একটি অবৈধ চরিত্র (সম্ভবত উদ্ধৃতিগুলির মধ্যে একটি?)

আমি যখন "php://input"কোডটি ম্যানুয়ালি টাইপ করতাম তখন এটি কার্যকর হয়েছিল। আমাকে কিছুক্ষণ সময় বের করতে!


1
খুশি আমি আরও কিছুটা নিচে স্ক্রোল করে দেখলাম - আমার একই সমস্যা ছিল। গুড ফাইন্ড!
চার্লি স্ট্যানার্ড

2
দেখে মনে হচ্ছে কেউ এটিকে মেডির পোস্টে সম্পাদনা করে স্থির করেছেন। তবে আমি সম্পাদনার ইতিহাসের দিকে তাকিয়ে দেখলাম যে মূল 200c 200bইনপুটটিতে "এন" এবং "পি" এর মধ্যে মূল পোস্টের (শূন্য প্রস্থের অক্ষর) ছিল। সে কীভাবে শেষ হয়েছিল তা নিশ্চিত নয়, তবে এটি এখন ঠিক fixed
ডালাস

6

আমি একই সমস্যার মুখোমুখি হয়েছি, নিম্নলিখিত কোডটি আমার পক্ষে কাজ করেছে:

$params = (array) json_decode(file_get_contents('php://input'), TRUE);
print_r($params);


1

পোস্টম্যান নেটিভ অ্যাপ্লিকেশন ইনস্টল করুন, ক্রোম এক্সটেনশানটি হ্রাস করা হয়েছে। (আমার নিজস্ব উইন্ডোতে খোলার পরেও ক্রোম অ্যাপ হিসাবে চালানো হয়েছিল)


2
এটি প্রশ্নের উত্তর দেয় না।
jhpratt

@ jhpratt আসলে তা করে। আমারও একই সমস্যা ছিল পোস্টম্যান অ্যাপ ব্যবহার করার সময় এটি কাজ করে। প্রশ্নটি: তাহলে এটি পোস্টম্যানের সাথে কাজ করছে না কেন?
জারোস্লাভ reত্রেইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.