在PHP中使用cURL进行RAW POST
作者:程序员11 时间:2023-02-10 人气:462 QQ交流群\邮箱:1003265987@qq.com$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);
或者
/**
使用curl方式实现get或post请求 raw 方式请求
@param $url 请求的url地址
@param $data 发送的post数据 如果为空则为get方式请求
return 请求后获取到的数据
*/
public static function curlRawRequest($url,$postData)
{
$data_string = json_encode($postData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'X-AjaxPro-Method:ShowList',
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
返回的数据是json字符串
hp将为您设置content-length标头还是您也应该设置它?
我根本无法使它正常工作。 我有一个页面试图将原始数据发布到该页面。 该页面将其接收的所有原始数据记录到数据库表中。 根本没有新行。 您知道自09年以来这里是否发生了变化?
这对我有用,而无需指定任何HTTP标头。
我只是意识到正文可以包含任何有效的json字符串。
要发布RAW文件而不是变量内容,请参见以下答案:stackoverflow.com/questions/15508850/这对于大型文件特别有用,因为file_get_contents()不会提供帮助。
此原始帖子的上限为2G。 如果您尝试发送大于2G的文件,它们将被截断为2G。 它是要加载的字符串类型的限制。
用Guzzle库实现:
use GuzzleHttpClient;
use GuzzleHttp
equestOptions;
$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()
);
PHP CURL扩展名:
$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);
欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。