Nicht unterstützte media-Typ für xml-php-curl-Anfrage
Hier ist mein code, den ich benutze, um die Verbindung zum Geist-Körper-Online-API. Wenn JEMAND überhaupt keine Erfahrung mit dieser bitte zeigen Sie mich in die richtige Richtung!
Die Fehler ich erhalte, ist :Der server auf eine Anfrage nicht, weil der Medientyp wird nicht unterstützt.
Code:
$soapUrl = "http://clients.mindbodyonline.com/api/0_5/ClassService.asmx?WSDL";
//xml post structure
$xml_post_string = '<?xml version="1.0" encoding=\"utf-8\"?>
<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<GetClasses xmlns="http://clients.mindbodyonline.com/api/0_5/GetClasses">
<Request>
<SourceCredentials>
<SourceName>{user}</SourceName>
<Password>{pass}</Password>
<SiteIDs>
<int>{id}</int>
</SiteIDs>
</SourceCredentials>
<XMLDetail>Basic</XMLDetail>
<PageSize>10</PageSize>
<CurrentPageIndex>0</CurrentPageIndex>
<SchedulingWindow>true</SchedulingWindow>
</Request>
</GetClasses>
</soapenv:Body>
</soapenv:Envelope>
';
$headers = array(
"Content-type: application/xml;charset=utf-8",
"Accept: application/xml",
"Cache-Control: no-cache",
"Pragma: no-cache",
"SOAPAction: http://clients.mindbodyonline.com/api/0_5/GetClasses",
"Content-length: ".strlen($xml_post_string),
);
$url = $soapUrl;
$cookiePath = tempnam('/tmp', 'cookie');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiePath);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
//converting
$response = curl_exec($ch);
curl_close($ch);
echo $response;
- Das ist sehr schwierig, sir!! Überprüfe bitte mit firebug und versuchen, den Prozess manuell. Aufzeichnung der erfolgreichen Anforderung/Antwort von firebug aus einer regelmäßigen Abfrage-und dann können wir beurteilen, was Sie falsch gemacht haben in Ihrer Anfrage. Eine CURL-Anfrage, dass ist genau abgestimmt mit dem true-Header und-cookies werden nicht scheitern, aber wir können das problem diagnostizieren, bis wir die details wissen. Wenn nicht firebug zumindest versuchen Befehlszeile: "curl-I site.com/ajaxcall" und Bericht zurück. Ernsthaft meine ich, dass man kein vergehen, wie ich gebeten habe, mehr zweideutige Fragen. Allerdings, wenn Sie besser details jemand beantworten wird.
- Habe ich gerade erlebt die gleiche Art von Fehler. Der Text der Antwort ist das, was Sie erwähnen, aber ein Blick in den HTTP-response-header enthält zusätzliche details: HTTP/1.1 415 Nicht verarbeiten kann, die Nachricht, da der Inhaltstyp " application/soap+xml;charset=UTF-8;action="foo.org/bar/Operation"' wurde nicht dem erwarteten Typ 'text/xml; charset=utf-8'.
Du musst angemeldet sein, um einen Kommentar abzugeben.