ddddd

在PHP中使用cURL进行RAW POST

作者:程序员11 时间:2023-02-10 人气:462 QQ交流群\邮箱:1003265987@qq.com
在PHP中使用cURL进行RAW POST
要展示的内容

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

温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

在PHP中使用cURL进行RAW POST---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单