Установить HTTP-запрос «Content-Type»

Как установить тип содержимого HTTP-запроса?

Я пробовал это:

$headers['Accept'] = 'application/xml'; $headers['Content-Type'] = 'application/xml'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

И это результат:

 HTTP/1.1 200 OK Content-Encoding: gzip Content-Type: text/html;charset=UTF-8 Date: Thu, 22 Mar 2012 14:04:36 GMT 

но пока не повезло …
Что мне нужно сделать, чтобы получить Content-Type: application/xml в ответе HTTP?

Я считаю, что заголовки должны быть простым массивом, элементами которого являются полный ключ: заголовки значений, а не ассоциативный массив:

 $headers = array(); $headers[] = 'Accept: application/xml'; $headers[] = 'Content-Type: application/xml'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

Это указано в документации curl_setopt() .

Вы устанавливаете тип accept для своего запроса (и используйте ответ Майкла для этого, вы должны посчитать его ответ, отвечая на прямой вопрос, потому что он это делает). Это не означает, что сервер ссылается на этот тип контента.

Если другой конец запроса является статическим файлом, вы должны убедиться, что ваш веб-сервер отправляет этот файл с типом MIME-приложения / xml. Если он заканчивается на .xml, то оба Apache и IIS уже сделают это. Если это что-то другое, это нестандартное расширение файла, но вы хотите, чтобы оно было отправлено как приложение / xml, вам нужно будет заставить диспетчера сервера установить httpd.conf или .htaccess, чтобы добавить тип mime для файл. В IIS вы используете инструменты администратора GUI, чтобы сделать то же самое, добавив тип mime для расширения файла как application / xml.

Если другой конец запроса является языком сценариев на стороне сервера, таким как PHP, Perl, Python, ColdFusion, ASP, ASP.net и т. Д., Тогда вам нужно использовать соответствующий метод / функцию на этом языке для вызова сценария испускать заголовок типа контента и устанавливать его в application / xml.

Обновление: вы говорите в комментариях, которые используете WizTools, чтобы исправить запрос, который получает возврат приложения / xml. Если вы хотите клонировать эту среду, отправьте все заголовки, которые она отправляет в ваш запрос на завивание. Предполагается, что пользовательский агент может быть в игре.