скручивание не результат печати - PullRequest
0 голосов
/ 01 мая 2019

Я вручную запустил URL-адрес от почтальона, и я успешно подключился, и он напечатал результаты.

Но когда я попытался вызвать его из метода, результат не печатается.

вот код curl, который я использовал:

public function curlHandle($apiPath, $postArray)
{
    $CI = & get_instance();
    $conf = $CI->config->config;
    $curlHandle = curl_init($apiPath);
    curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curlHandle, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36");
    curl_setopt($curlHandle, CURLOPT_TIMEOUT , 300);
    curl_setopt($curlHandle, CURLOPT_POST, 1);
    curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postArray);
    curl_setopt($curlHandle, CURLOPT_VERBOSE, 1);
    $fp = fopen('/var/www/html/logs/curl_log.txt', 'w');
    curl_setopt($curlHandle, CURLOPT_STDERR, $fp);
    $result = curl_exec($curlHandle);
    print_r(curl_error($curlHandle));
    if ($result === FALSE) {
        die(curl_error($curlHandle));
    } else {
         $data = json_decode($result, TRUE);
    }
    curl_close($curlHandle);
    return $data;

}

Вот содержимое curl_log.txt

  • Имя хоста localhost / codeignitertest было найдено в кэше DNS
  • Попытка 127.0.0.1 ...
  • TCP_NODELAY set
  • Подключено к alocalhost / codeignitertest (127.0.0.1) порт 80 (# 0)

    POST / test / processHTTP / 1.1 Хост: localhost / codeignitertest Пользователь-агент: Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 29.0.1547.57 Safari / 537.36 Примите: / Content-Length: 142 Content-Type: multipart / form-data;border = ------------------------ 78a116d61ad4939d

также обратите внимание, что curlHandle () из другого проекта и localhost / codeignitertest, но оба работают на моем локальном хосте

1 Ответ

0 голосов
/ 01 мая 2019

Вы ввели эту опцию:

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);

Это означает, что curl возвращает вывод с удаленного сервера вместо его печати. ​​

Затем вы записываете этот вывод в переменную:

$result = curl_exec($curlHandle);

Который вы затем кодируете и возвращаете своему абоненту:

return $data;

Этот код не должен печатать результаты. возвращает результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...