Comment soumettre correctement des tableaux dans les requêtes cURL POST ?

Susan Sarandon
Libérer: 2024-11-02 01:59:30
original
661 Les gens l'ont consulté

How to Properly Submit Arrays in cURL POST Requests?

Prise en charge des tableaux dans les requêtes cURL POST

Dans cette requête, l'utilisateur recherche des conseils sur la façon d'utiliser les tableaux dans les requêtes cURL POST. Lors de l'utilisation de tableaux dans le code fourni, seule la première valeur est soumise. En explorant le code soumis, les problèmes suivants sont identifiés :

<code class="php">//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://api.example.com/api';
$fields = array(
            'username' => "annonymous",
            'api_key' => urlencode("1234"),
            'images[]' => urlencode(base64_encode('image1')),
            'images[]' => urlencode(base64_encode('image2'))
        );

//url-ify the data for the POST
foreach($fields as $key => $value) { $fields_string .= $key.'='.$value.'&amp;'; }
rtrim($fields_string, '&amp;');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);
echo $result;

//close connection
curl_close($ch);</code>
Copier après la connexion

Structure de tableau incorrecte :

Le principal problème réside dans la structure de tableau incorrecte à :

<code class="php">'images[]' => urlencode(base64_encode('image1')),
'images[]' => urlencode(base64_encode('image2'))</code>
Copier après la connexion

Cette approche ne créera pas de tableau en PHP ; à la place, chaque clé 'images[]' écrasera la précédente.

Corriger la structure du tableau (à l'aide de http_build_query) :

Pour construire un tableau correctement, pensez à utiliser le Fonction http_build_query :

<code class="php">$fields = array(
            'username' => "annonymous",
            'api_key' => urlencode("1234"),
            'images' => array(
                 urlencode(base64_encode('image1')),
                 urlencode(base64_encode('image2'))
            )
        );
$fields_string = http_build_query($fields);</code>
Copier après la connexion

Avec cette modification, $fields_string représentera désormais correctement un tableau avec plusieurs valeurs pour la clé 'images'.

Code révisé :

En intégrant ces ajustements, le code révisé apparaîtrait comme suit :

<code class="php">//extract data from the post
extract($_POST);

//set POST variables
$url = 'http://api.example.com/api';
$fields = array(
            'username' => "annonymous",
            'api_key' => urlencode("1234"),
            'images' => array(
                 urlencode(base64_encode('image1')),
                 urlencode(base64_encode('image2'))
            )
        );

//url-ify the data for the POST
$fields_string = http_build_query($fields);

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);
echo $result;

//close connection
curl_close($ch);</code>
Copier après la connexion

En implémentant ces modifications, la prise en charge des tableaux dans les requêtes cURL POST est effectivement obtenue, garantissant que toutes les valeurs sont transmises à le serveur comme prévu.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!