পিএইচপি-তে সিআরএল ব্যবহার করে র পোস্ট করুন


126

সিআরএল ব্যবহার করে কীভাবে আমি পিএইচপিতে একটি কাঁচা পোস্ট করতে পারি?

কোনও এনকোডিং ছাড়াই কাঁচা পোস্ট এবং আমার ডেটা স্ট্রিংয়ে সংরক্ষণ করা হয়। ডেটা এভাবে ফর্ম্যাট করা উচিত:

... usual HTTP header ...
Content-Length: 1039
Content-Type: text/plain

89c5fdataasdhf kajshfd akjshfksa hfdkjsa falkjshfsa
ajshd fkjsahfd lkjsahflksahfdlkashfhsadkjfsalhfd
ajshdfhsafiahfiuwhflsf this is just data from a string
more data kjahfdhsakjfhsalkjfdhalksfd

একটি বিকল্প হ'ল পাঠানো হচ্ছে পুরো HTTP শিরোনামটি ম্যানুয়ালি লিখুন, তবে এটি কম অনুকূল বলে মনে হচ্ছে।

যাইহোক, আমি কি কেবল curl_setopt () পোষ্ট ব্যবহার করুন, পাঠ্য / প্লেইন ব্যবহার করতে এবং একটি থেকে কাঁচা তথ্য প্রেরণ করতে বিকল্পগুলি পাস করতে পারি $variable?

উত্তর:


229

আমি কেবল সমাধানটি পেয়েছি, আমার নিজের প্রশ্নের উত্তর দেওয়ার ধরণটি অন্য কেউ যদি তাতে হোঁচট খায় তবেই।

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,            "http://url/url/url" );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,           1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,     "body goes here" ); 
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: text/plain')); 

$result=curl_exec ($ch);

4
পিএইচপি আপনার জন্য সামগ্রীর দৈর্ঘ্যের শিরোনাম সেট করবে বা আপনারও এটি সেট করা উচিত?
এরিক ব্লচ

3
আমি এই কাজ করতে মোটেও পেতে পারি না। আমার একটি পৃষ্ঠা রয়েছে যা আমি কাঁচা ডেটা পোস্ট করার চেষ্টা করছি। এই পৃষ্ঠাটি এটি প্রাপ্ত সমস্ত কাঁচা ডেটা একটি ডাটাবেস সারণীতে রেকর্ড করে। কোনও নতুন সারি নেই। '09-এর পরে এখানে কিছু পরিবর্তন হয়েছে কিনা জানেন?
জেমস

1
এটি কোনও HTTP শিরোনাম নির্দিষ্ট না করেই আমার পক্ষে কাজ করে।
xryl669

12
আমি কেবল বুঝতে পেরেছি যে এখানে শরীর চলে যায় কোনও বৈধ জেসন স্ট্রিং অন্তর্ভুক্ত করতে পারে।
শশী কাঁথ

1
এই কাঁচা পোস্টের জন্য 2 জি সীমা রয়েছে। আপনি যদি 2G এর চেয়ে বড় ফাইল প্রেরণের চেষ্টা করেন তবে তারা 2G-এ ফিরে যাবে। এটি স্ট্রিং ধরণের বোঝা হচ্ছে একটি সীমাবদ্ধতা।
কাদেন ইয়েলি

5

গুজল লাইব্রেরি সহ বাস্তবায়ন:

use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;

$httpClient = new Client();

$response = $httpClient->post(
    'https://postman-echo.com/post',
    [
        RequestOptions::BODY => 'POST raw request content',
        RequestOptions::HEADERS => [
            'Content-Type' => 'application/x-www-form-urlencoded',
        ],
    ]
);

echo(
    $response->getBody()->getContents()
);

পিএইচপি সিআরএল এক্সটেনশন:

$curlHandler = curl_init();

curl_setopt_array($curlHandler, [
    CURLOPT_URL => 'https://postman-echo.com/post',
    CURLOPT_RETURNTRANSFER => true,

    /**
     * Specify POST method
     */
    CURLOPT_POST => true,

    /**
     * Specify request content
     */
    CURLOPT_POSTFIELDS => 'POST raw request content',
]);

$response = curl_exec($curlHandler);

curl_close($curlHandler);

echo($response);

সোর্স কোড

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