cURL с PHP и JSON - PullRequest
       17

cURL с PHP и JSON

0 голосов
/ 14 июля 2011

Я хочу имитировать, используя CURL с PHP, работу веб-сайта, который получает данные с помощью AJAX POST.

Обычно, когда я просматриваю POST-запросы с помощью Firebug, вы видите пары переменная / значение,но в этом случае вы видите только одну строку JSON.Например,

{"refId":"14536"}

Есть ли способ имитировать этот запрос с помощью CURL?Я посмотрел на CURL, но насколько я вижу, параметр CURLOPT_POSTFIELDS должен быть строкой запроса, состоящей из одного или нескольких имени / значения.

Вот мой тестовый код с обычным запросом POST, использующимодно имя / значение пары.Я хотел бы изменить это, чтобы сделать выше.

$curlOptions = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3",
    CURLOPT_CONNECTTIMEOUT => 600,      // timeout on connect
    CURLOPT_TIMEOUT        => 600,      // timeout on response
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => 'var1=113',
    CURLOPT_URL            => "http://localhost/t4.php"
);

$curlCh      = curl_init();
curl_setopt_array( $curlCh, $curlOptions );
$fileContents = curl_exec( $curlCh );
$curlErr     = curl_errno( $curlCh );
$curlErrmsg  = curl_error( $curlCh );

if( $curlErr ) echo "CURL ERROR:</b> $curlErr  $curlErrmsg";
echo $fileContents; //check worked
curl_close( $curlCh );

1 Ответ

1 голос
/ 14 июля 2011

Как насчет чего-то вроде:

$postData = json_encode(array('refId' => '14536'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...