php curl функции выпуска
В моих кодах возникают проблемы с функциями curl. Мой CURLINFO_HTTP_CODE всегда возвращает 0, а когда я использую curl_error($ch), он возвращает "не удалось достичь хоста". Мой хост ispeech, и у него не должно быть проблем. Может ли кто-нибудь здесь помочь мне? Большое спасибо!
iSpeech.php
class iSpeechBase{
var $server;
var $parameters = array("device-type"=>"php-SDK-0.3");
function setParameter($parameter, $value){
if ($parameter == "server")
$this->server = $value;
else
$this->parameters["$parameter"] = $value;
}
function makeRequest(){
$ch = curl_init();
$url=$this->server . "/?" . http_build_query($this->parameters);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
ob_start();
echocurl_exec($ch);
$http_body = ob_get_contents();
ob_end_clean();
echo curl_getinfo($ch, CURLINFO_HTTP_CODE); //return 0
echo curl_error($ch); //return Could not reach host.
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200)
if ($this->parameters["action"] == "convert")
return array("error" => $http_body);
return $http_body;
}
}
Синтез-demo.php
require_once('ispeech.php');
$SpeechSynthesizer = new SpeechSynthesizer();
$SpeechSynthesizer->setParameter("server", "http://api.ispeech.org/api/rest");
$SpeechSynthesizer->setParameter("apikey", "myapikey");
$SpeechSynthesizer->setParameter("text", "yes");
$SpeechSynthesizer->setParameter("format", "wav");
$SpeechSynthesizer->setParameter("voice", "usenglishfemale");
$SpeechSynthesizer->setParameter("output", "rest");
$result = $SpeechSynthesizer->makeRequest();
1 ответ
Решение
Так что сохраните faffing с помощью буфера ob, вы можете заменить
ob_start();
echocurl_exec($ch);
$http_body = ob_get_contents();
ob_end_clean();
с
$http_body = curl_exec($ch);
Также добавляет пробел между echo и curl_exec, отсутствующим в вашем примере (хотя это должно привести к фатальному исходу и остановить выполнение - у вас есть собственный обработчик ошибок?)