Set HTTP-Request "Content-Type"
Wie legen Sie den content-type des HTTP-Request?
Habe ich versucht, dieses:
$headers['Accept'] = 'application/xml';
$headers['Content-Type'] = 'application/xml';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
Und das ist das Ergebnis:
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: text/html;charset=UTF-8
Date: Thu, 22 Mar 2012 14:04:36 GMT
aber kein Glück so weit...
Was muss ich tun, um eine Content-Type: application/xml
in meinem HTTP-Antwort?
- Ja, ich weiß, aber was muss ich in meiner Anfrage um eine
Content-Type: application/xml
Antwort? - Das Ergebnis, das Sie geben, ist eine HTTP - Antwort nicht eine Anfrage. Fragen Sie, wie den content-type der Anfrage, oder du fragst Sie, wie Fragen Sie den server zum bereitstellen von XML in der Antwort?
- Sie müssen, um den Accept-header (und nicht der content-type-header). Dann muss der server unterstützen mehrere reaktionsarten und verwenden Sie den accept-header, um zu bestimmen, welche zu benutzen. Weißt du, ob der server macht das schon?
- Ich Frage, was muss ich einstellen in meinem Antrag, um eine
Content-Type: application/xml
in meiner Verantwortung - Ich habe nicht den Accept-header, keine?
- — Wie es aussieht, aber nicht den server zahlen keine Aufmerksamkeit auf Sie?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Glaube ich, dass der Header muss ein einfaches array, dessen Elemente sind voll Schlüssel:Wert-Header, nicht ein assoziatives array:
Dies ist angegeben in der
curl_setopt()
- Dokumentation.application/xml
Content-Type, also der server ist in der Lage senden Sie die richtige Antwort. Nur wenn ich versuche mit custom PHP habe ich nicht zum senden derContent-Type
Einstellungen...Legen Sie einen accept-Typ für Ihre Anfrage (und Michael's Antwort, dass Sie rechnen soll, seine Antwort als Beantwortung der direkten Frage, denn es tut). Nicht Mandat, dass der server resonds mit diesem Inhaltstyp.
Wenn das andere Ende des request einer statischen Datei, müssen Sie sicherstellen, dass Ihre web-server sendet die Datei mit dem MIME-Typ application/xml. Wenn es endet .xml -, dann sowohl Apache als auch IIS wird dies bereits tun. Wenn es etwas anderes ist, eine nicht-standard-Datei-Erweiterung, aber Sie wollen, dass es gesendet werden als application/xml", dann müssen Sie die server-manager, um die httpd.conf oder .htaccess hinzufügen der mime-Typ für die Datei. In IIS verwenden Sie die GUI-admin-tools, das gleiche zu tun, indem ein mime-Typ für die Dateiendung als application/xml.
Wenn das andere Ende der Anfrage ist eine server-side-scripting-Sprache wie PHP, Perl, Python, ColdFusion, ASP, ASP.net etc etc, dann müssen Sie verwenden Sie die entsprechende Methode/Funktion, die Sprache für das script aufgerufen wird, wieder den content-type-header und legen Sie es auf application/xml.
Update: Sie sagen in den Kommentaren, die Sie verwenden WizTools zum aussenden einer Anforderung, die nicht bekommen, eine Rückkehr application/xml. Wenn Sie möchten, zu Klonen, die Umgebung, dann senden ALLE Header, es ist Einsendung Ihres curl Anfrage. Eine Vermutung ist, dass der user-agent könnte im Spiel.