Maison >développement back-end >tutoriel php >Comment envoyer des requêtes POST et récupérer des réponses en PHP sans cURL ?

Comment envoyer des requêtes POST et récupérer des réponses en PHP sans cURL ?

DDD
DDDoriginal
2024-12-29 01:55:09656parcourir

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

Envoi de requêtes POST avec PHP

Lorsque vous rencontrez des points de terminaison qui n'acceptent que les méthodes POST, il peut être difficile d'accéder et de lire le contenu résultant. Cet article explore une méthode pratique pour envoyer des requêtes POST et récupérer la réponse du serveur à l'aide de PHP.

Méthode sans CURL :

Pour les scénarios où CURL n'est pas une option viable , la solution suivante utilisant la fonction native file_get_contents() de PHP fournit une alternative :

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

Cette approche construit un flux HTTP contexte en utilisant les options fournies et envoie une requête POST à ​​l’URL spécifiée. La réponse du serveur est ensuite stockée dans la variable $result, donnant accès à son contenu pour un traitement ultérieur à l'aide de méthodes telles que DOMDocument ou file_get_contents().

Pour plus d'informations sur la création et la personnalisation du contexte de flux, reportez-vous au manuel PHP. :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn