На самом деле, я никогда не использую CURL (в php). API-интерфейс PHP-потока намного удобнее и может быть использован для POST-данных. У Wez Furlong есть статья об этом.
Если бы я использовал это? Я бы начал с включения всех сообщений (настройка сообщения об ошибках на E_ALL). Если я обнаружу, что PHP не сообщает мне, что мне нужно в сообщениях об ошибках, я бы, вероятно, использовал прокси-подход, чтобы увидеть, что на самом деле происходит. Изменение целевого URL на локальную страницу php, содержащую что-то вроде
<?php
var_dump($_POST);
var_dump($_GET);
var_dump($_SERVER);
это один из способов. Другой способ - использовать утилиту типа netcat для прослушивания порта 80 и отправки запроса туда:
netcat -l -p 80
Это ничего не вернет для скручивания, но позволит вам точно увидеть, что отправляется на сервер, что может быть достаточно для диагностики проблемы.
Вы также можете извлечь заголовки из PHP с помощью функции apache_request_headers () . В большинстве случаев я предпочитаю подход netcat, поскольку он гарантирует, что я вижу неизмененную правду, а также отображаю необработанные данные постов.