не удалось открыть поток: HTTP-запрос не выполнен! HTTP / 1.0 400

У меня есть класс

class exchange_rates{

var $currency = '"USDINR","TRYINR","SARINR","EURINR"';
var $url ;
var $handle;
var $result;
var $xml_index , $xml_val;

public function __construct(){

$this->url = 'http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ('.$this->currency.')&env=store://datatables.org/alltableswithkeys';


}

public function fetch_Currency (){

//echo $this->url ;
$this->handle = file_get_contents($this->url);

if ($this->handle) {
$this->result = fgets($this->handle, 4096);
$p = xml_parser_create();

xml_parse_into_struct($p, $this->result, $this->xml_val, $this->xml_index);

xml_parser_free($p);

fclose($this->handle);
}
}

public function get_exchange(){
echo "<pre>";
var_dump($this->xml_val);
echo "</pre>";
}

}

Я звоню в класс вот так

$obj = new exchange_rates();
$obj->fetch_Currency();
$obj->get_exchange();

Я получаю следующую ошибку

Warning: file_get_contents(http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("USDINR","TRYINR","SARINR","EURINR")&env=store://datatables.org/alltableswithkeys): failed to open stream: HTTP request failed! HTTP/1.0 400 Unknown Version in C:\xampp\htdocs\ycc\currency_convertor.php on line 21
NULL

В основном я пытаюсь получить XML из URL. Если вы анализируете следующий URL

 http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("USDINR","TRYINR","SARINR","EURINR")&env=store://datatables.org/alltableswithkeys

Вы увидите результат XML, но через мой код я не могу скачать

Пожалуйста, помогите мне

Спасибо

0

Решение

Просто наткнулся на этот вопрос, когда я отлаживал тоже самое. Решением для меня было то, что вы должны были urlencode части запроса URL.

$query = 'select * from yahoo.finance.xchange where pair in ("USDINR","TRYINR","SARINR","EURINR")';
$request = 'http://query.yahooapis.com/v1/public/yql?q=' . urlencode($query) . '&env=store://datatables.org/alltableswithkeys';

$data = file_get_contents($request);

Надеюсь, это поможет кому-то!

Больше информации: https://developer.yahoo.com/php/howto-reqRestPhp.html

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]