Wie übermittle ich Arrays in cURL-POST-Anfragen ordnungsgemäß?

Susan Sarandon
Freigeben: 2024-11-02 01:59:30
Original
614 Leute haben es durchsucht

How to Properly Submit Arrays in cURL POST Requests?

Unterstützen von Arrays in cURL-POST-Anfragen

In dieser Abfrage sucht der Benutzer nach Anleitungen zur Verwendung von Arrays in cURL-POST-Anfragen. Bei der Verwendung von Arrays im bereitgestellten Code wird nur der erste Wert übermittelt. Bei der Untersuchung des übermittelten Codes wurden die folgenden Bedenken festgestellt:

<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>
Nach dem Login kopieren

Falsche Array-Struktur:

Das Hauptproblem liegt in der falschen Array-Struktur bei:

<code class="php">'images[]' => urlencode(base64_encode('image1')),
'images[]' => urlencode(base64_encode('image2'))</code>
Nach dem Login kopieren

Dieser Ansatz erstellt kein Array in PHP; Stattdessen überschreibt jeder Schlüssel „images[]“ den vorherigen.

Korrekte Array-Struktur (mit http_build_query):

Um ein Array korrekt zu erstellen, sollten Sie die Verwendung von in Betracht ziehen http_build_query-Funktion:

<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>
Nach dem Login kopieren

Mit dieser Änderung stellt der $fields_string nun korrekt ein Array mit mehreren Werten für den Schlüssel „images“ dar.

Überarbeiteter Code:

Unter Berücksichtigung dieser Anpassungen würde der überarbeitete Code wie folgt aussehen:

<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>
Nach dem Login kopieren

Durch die Implementierung dieser Änderungen wird die Unterstützung für Arrays in cURL-POST-Anfragen effektiv erreicht und sichergestellt, dass alle Werte an übertragen werden den Server wie vorgesehen.

Das obige ist der detaillierte Inhalt vonWie übermittle ich Arrays in cURL-POST-Anfragen ordnungsgemäß?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!