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'.
InformationsquelleAutor klye_g | 2012-07-03
Schreibe einen Kommentar