2013-03-21 3 views
2

Хотя приведенный ниже вывод curl предоставляет полезную информацию заголовка, он не предоставляет информацию полезной нагрузки. Например, я хотел бы увидеть {"jason_index", "json_value"} в предоставленной информации об отладке.php cURL CURLOPT_VERBOSE, не отображающий полезную нагрузку

1.) Можно ли отображать полезную нагрузку в линию с помощью подробного режима?

2.) Каков наилучший способ просмотра отправленной полезной нагрузки, обрабатываемой cURL?

* About to connect() to domain.com port 443 (#0) 
* Trying IP... * connected 
* Connected to domain.com (IP) port 443 (#0) 
* successfully set certificate verify locations: 
* CAfile: /usr/share/curl/curl-ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-SHA 
* Server certificate: 
* subject: /serialNumber=SN/C=CA/ST=Ontario/L=Ottawa/O=ORG Inc./CN=*.domain.com 
* start date: 2010-05-10 22:23:08 GMT 
* expire date: 2015-08-12 19:17:14 GMT 
* subjectAltName: alt.domain.com matched 
* issuer: /C=US/O=Equifax/OU=CA 
* SSL certificate verify ok. 
* Server auth using Basic with user 'userid' 
> POST request_uri.json HTTP/1.1 
Authorization: Basic auth_string= 
User-Agent: UA 
Host: alt.domain.com 
Accept: */* 
Content-Type: application/json; charset=utf-8 
Content-Length: 85 

< HTTP/1.1 422 Unprocessable Entity 
< Server: ServerName 
< Date: Thu, 21 Mar 2013 20:08:56 GMT 
< Content-Type: application/json; charset=utf-8 
< Transfer-Encoding: chunked 
< Connection: keep-alive 
< Status: 422 Unprocessable Entity 
< 
* Connection #0 to host alt.domain.com left intact 
* Closing connection #0 

Пример заявления Curl

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_STDERR, fopen(dirname(__FILE__) . "/headers.txt", "w+")); 
$result = curl_exec($ch); 
+0

Если вы хотите зарегистрировать '$ data', вы публикуете: ** короткий ответ ** подробный вывод включен или выключить, поэтому вам придется написать специальную функцию ведения журнала, которая захватывает данные STDERR и ваши данные полезной нагрузки и записывает их в журнал в желаемом формате. –

+0

Этот ответ имеет подход к обработке данных STDERR: http://stackoverflow.com/questions/9550319/bad-request-connecting-to-sites-via-curl-on-host-and-system/9571305#9571305 для информации на –

ответ

1

Я недавно наткнулся на эту проблему, и только так я смог увидеть, что происходит это с помощью отладки прокси-сервер, как:

Другое решение с помощью пакета инспектор, как (этот вариант не позволит Вам увидеть HTTPS трафик):

решение с прокси проста в установке, просто установить, и использование:

curl_setopt($ch, CURLOPT_PROXY, 'localhost:8080'); // default for burp suite 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // ignore certs while connecting to https 
+0

Не кажется простым :(С Laravel я получаю сообщение об ошибке: Исключение в route.php строка 60: Не удалось подключиться к порту localhost 8080: Отключить связь – geoidesic

+0

Возможно, потому что мой код находится в бродячем поле, в то время как отрыжка работает на хосте. – geoidesic

Смежные вопросы