1. ホーム
  2. php

[解決済み] PHP で cURL を使用した RAW POST

2022-05-08 09:07:57

質問

PHPでcURLを使用してRAW POSTを行うにはどうすればよいですか?

エンコードされていない生の投稿で、私のデータは文字列に格納されています。データはこのようにフォーマットされているはずです。

... 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() にオプションを渡して、POST を使用し、text/plain を使用し、生データを $variable ?

解決方法は?

私はちょうど解決策を見つけました。他の誰かがそれにつまずく場合に備えて、私自身の質問に対する答えのようなものです。

$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);