| 

.NET C# Java Javascript Exception

3
Hallo,

ich hab folgendes Problem. Ich mache mich cURL einen Aufruf einer von mir geschrieben API (darum geht es):

// die Funktion
function requestCurl( $data )
{
$ch = curl_init( 'http://api.domain.tld/' );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
if( !$data = curl_exec( $ch )) {
echo 'Curl execution error.', curl_error( $ch ) ."\n";
return FALSE;
}
curl_close( $ch );
return $data;
}


// Starte übergabe
$response = requestCurl( $template );


Das funktioniert auch soweit alles super. Setzt ich auch für externe APIs so ein. bislang keine Probleme..

Nun zu meinem Problem..

$template ist ein XML STRING

$template = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$template.= "<request>"."\n";
$template.= " <auth>"."\n";
$template.= " <user>567567567</user>"."\n";
$template.= " <apikey>5657657</apikey>"."\n";
$template.= " </auth>"."\n";

$template.= " <task>"."\n";
$template.= " <action>1234567890</code>"."\n";
$template.= " <customerID>test</customerID>"."\n";
$template.= " <data>"."\n";
$template.= " <name>xxxx</name>"."\n";
$template.= " <xyz>5555</xyz>"."\n";
$template.= " </data>"."\n";
$template.= " </task>"."\n";

$template.= "</request>"."\n";


So.. jetzt habe ich mir in der PHP Datei an die ja die Anfrage
http://api.domain.tld/
gesendet wird, mal mit
print_r($_POST);
ausgeben lassen.

Da bekomme ich dann:

Array
(
[<?xml_version] => \"1.0\" encoding=\"UTF-8\"?>
<request>
<auth>
<user>567567567</user>
<apikey>5657657</apikey>
</auth>
<task>
<action>1234567890</action>
<customerID>test</customerID>
<data>
<name>xxxx</name>
<xyz>5555</xyz>
</data>
</task>
</request>

)


heraus. Aber wie bitte kann ich den string $_POST mit
$response = simplexml_load_string($_POST);
jetzt verwenden. Bekommen logischer weise ein ERROR. Da der spring ja ein XML ist. Kann man die Übergabe in ein $VARIABEL[0] setzten das es so
<?xml version="1.0" encoding="UTF-8"?>
<request>
<auth>
<user>567567567</user>
<apikey>5657657</apikey>
</auth>
<task>
<action>1234567890</action>
<customerID>test</customerID>
<data>
<name>xxxx</name>
<xyz>5555</xyz>
</data>
</task>
</request>

ausschaut? Ich bin mir ziemlich sicher das ein Fehler habe oder vielleicht auch nicht genau weis wie ich mit der Übergabe durch cURL umzugehen habe.

Vielleicht kann mir ja jemand weiter helfen. BITTE. Muss diese API irgendwie zum laufen bekommen. Hatte mir das in der Planung einfacher vorgestellt. :-)

Gruß
Ben
28.04.2011
Gast
31 2
Jens Duczmal 2,6k 1 3 9
Überschrift korrigiert, da ich nicht glaube, das der TE einen Entwickler mit dem Namen "Walt" sucht :)
Jens Duczmal 28.04.2011
Überschrift korrigiert, da ich nicht glaube, das der TE einen Entwickler Namens 'Walt' sucht.
Jens Duczmal 28.04.2011
1 Antwort
2
Verwende hierfür

$inputRawData = file_get_contents("php://input");
$response = simplexml_load_string($inputRawData);


dann bekommst du die, an dein API Interface gesendeten Daten als String.
http://php.net/manual/en/wrappers.php.php

Die du dann weiter verarbeiten kannst ;)
28.04.2011
Marco Rieger 820 8
Danke für den Tipp..
– Gast 28.04.2011

Stelle deine Php-Frage jetzt!