Ich habe versucht, beide Lösungen here gefunden, aber es scheint mir nicht bildenSenden post-Daten via PHP file_get_contents funktioniert nicht
meine Anfrage wie diese bauen zu arbeiten:
<?php
class RequestObject {
public $p1 = 1;
public $p2 = 2;
}
$requestObject = new RequestObject();
$requestString = http_build_query($requestObject);
// ^^ returns 'p1=1&p2=2'
// $requestUrl = "http://address/api?fn=li_con"; // old with failure response
$requestUrl = "http://address/api/?fn=li_con";
$requestParameters = array(
"http" => array(
"method" => "POST",
"header" => "Content-type: application/x-www-form-urlencoded",
"content" => $requestString
)
);
$streamContext = stream_context_create($requestParameters);
$result = file_get_contents($requestUrl, false, $streamContext);
echo "$result";
meine api ermöglicht eine einfache Antwort Post und erhalten Array als json string:
<?php
switch(filter_input(INPUT_GET, 'fn')) {
case 'li_con' :
echo json_encode(array($_POST, $_GET));
break;
default:
echo "action not found";
}
alles, was ich zurück erhalten, ist diese Saite:
[[],{"fn":"li_con"}]
also, was ist los? Warum bekomme ich die post-Parameter nicht in meiner API?
Ich kann nicht reproduzieren. Der Fehler muss woanders liegen. Ist das der genaue Code, den Sie testen? –
Es ist möglich, dass php.ini die Fähigkeit für 'file_get_contents()' deaktiviert, von einer URL zu lesen. Wenn Sie Probleme damit haben, prüfen Sie, ob dies der Fall ist. Wenn Sie planen, dass Ihr Code auf unbekannten PHP-Servern verwendet wird, sollten Sie sich darüber im Klaren sein, dass diese Konfigurationseinstellung möglicherweise nicht geändert werden kann. Wenn dies bedeutet, dass Sie 'file_get_contents()' nicht verwenden können, sollten Sie stattdessen Curl verwenden. Es ist mehr Code, aber im Allgemeinen kompatibler. Eine weitere Option ist eine Drittanbieter-Bibliothek wie Guzzle. – Simba
danke für alle Kommentare. Der Fehler war ein fehlender Schrägstrich in der angeforderten URL. der richtige muss sein '' 'http: // adresse/api /? fn = li_con' '' – mtizziani