を必要と失敗した。..HTTPリクエストは、長さが、私は謙虚にこれでいくつかの多くの必要な支援を人々の前に来る
私が使用して(または使用しようとして)いますスカイスキャナーのAPI - http://partners.api.skyscanner.net/apiservices/pricing/v1.0を文書としてhere。しかし、私は、このエラーに直面して来ています:私はそれなしでソリューションを必要としてるよう
HTTP request failed! HTTP/1.1 411 Length Required
PHPの試み1
function getSkyScanner() {
$url = 'http://partners.api.skyscanner.net/apiservices/pricing/v1.0?apiKey=MY-API-KEY';
$headers = array( 'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => 'application/xml');
$contextData = array (
'method' => 'POST',
'header' => $headers);
$context = stream_context_create (array ('http' => $contextData));
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { echo 'error'; }
var_dump($result);
}
私のサーバーは、カールをサポートしていません。私はWAMPとlocalhostを使用していますが、同じエラーと一見同じ問題が発生するライブバージョンも試しました。私は、不合理な量の成功(なし)でエラーを修正するために、ほとんどすべての変数の組み合わせを試しました。これは、送信しようとしているフォームの内容を含むバリエーションの1つです。
PHPの試み2
function getSkyScanner() {
$url = 'http://partners.api.skyscanner.net/apiservices/pricing/v1.0?apiKey=MY-API-KEY';
$params = array( 'country' => 'GB',
'currency' => 'GBP',
'locale' => 'en-GB',
'originplace' => 'LHR',
'destinationplace' => 'EDI',
'outbounddate' => '2016-10-10',
'adults' => '1'
);
$query = http_build_query($params);
$headers = array( 'Content-Type' => 'application/x-www-form-urlencoded',
'Accept' => 'application/xml');
$contextData = array (
'method' => 'POST',
'header' => $headers,
'content' => $query);
$context = stream_context_create (array ('http' => $contextData));
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { echo 'error'; }
var_dump($result);
}
これはアウトスロー:
Content-type not specified
が続く:
HTTP/1.1 400 Bad Request
あなたは私が右について今、いくつかの洞察力をいただければ幸い助けることができる場合。
多くの感謝!
1.ご要望に応じてコンテンツ/フォームデータを送信しているようではありません。リンクしたドキュメントには、送信が必要なフィールドが指定されています。 2.送信するデータのサイズにContent-Lengthヘッダーを含める必要があります。 –
@マークH - ご意見ありがとうございます。明確にするために、すでに調査したオプションを強調するために投稿を編集しました。 1.私の2回目の試み(上記)で見ることができるフォームデータに関する公正なポイント。 2.また、さまざまなContent-Lengthヘッダを試しましたが、役に立たないものです。それ以上の考え? –