首页 >后端开发 >php教程 >如何在没有 cURL 的情况下在 PHP 中发送 POST 请求并检索响应?

如何在没有 cURL 的情况下在 PHP 中发送 POST 请求并检索响应?

DDD
DDD原创
2024-12-29 01:55:09671浏览

How to Send POST Requests and Retrieve Responses in PHP Without cURL?

使用 PHP 发送 POST 请求

当遇到仅接受 POST 方法的端点时,访问和读取结果内容可能会很困难。本文探讨了一种使用 PHP 发送 POST 请求并检索服务器响应的实用方法。

无 CURL 方法:

适用于 CURL 不可行的情况,以下利用 PHP 原生 file_get_contents() 函数的解决方案提供了另一种选择:

$url = 'http://server.com/path';
$data = ['key1' => 'value1', 'key2' => 'value2'];

// Specify HTTP method and headers
$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded\r\n",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];

// Create stream context with POST data
$context = stream_context_create($options);

// Send POST request and retrieve response
$result = file_get_contents($url, false, $context);
if ($result === false) {
    // Handle error
}

var_dump($result);

This方法使用提供的选项构造 HTTP 流上下文,并将 POST 请求发送到指定的 URL。然后,服务器的响应存储在 $result 变量中,提供对其内容的访问,以便使用 DOMDocument 或 file_get_contents() 等方法进行进一步处理。

有关流上下文创建和自定义的其他信息,请参阅 PHP 手册:

  • stream_context_create: https://www.php.net/manual/en/function.stream-context-create.php

以上是如何在没有 cURL 的情况下在 PHP 中发送 POST 请求并检索响应?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn