2

これは一般的なエラーのようですが、すべてを試してみましたが、うまくいきません!

私のコードは現在次のようになっています。

$apikey = "XXXXXXXXX";
$search_url = "https://www.googleapis.com/shopping/search/v1/public/products?key=$apikey&country=US&q=$item_title&restrictBy=gtin&alt=json";

$response = file_get_contents($search_url);

urldecode から html_entity_decode/encode まで、見つけたほぼすべてのソリューションを試しましたが、それでも同じエラーが発生します。

file_get_contents(https://www.googleapis.com/shopping/search/v1/public/products?key=XXXXX&country=US&q=THESTRING&restrictBy=gtin&alt=json) failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

ご覧のとおり、普通の & (アンパサンド) の代わりに &s を取得します。

同様の問題があったことを覚えています。問題は、文字列の先頭に「http://」がないことだけでした。しかし、ご覧のとおり、ここではそうではありません。

ありがとう!

4

3 に答える 3

0

テスト文字列が文字通り取得されるように、一重引用符を試しましたか?のように

$search_url = 'https://www.googleapis.com/shopping/search/v1/public/products?key='.$apikey.'&country=US&q=$item_title&restrictBy=gtin&alt=json';
于 2012-09-18T08:32:38.963 に答える
-1

私の問題に対する答えは非常に簡単でした:

$item_title に空白が含まれていると、PHP がエラーをスローしていました。これを修正するには、これをコードに追加するだけで済みました。

strtr( $item_title, " ", "+" );

空白をプラス記号に変更します。もう失敗したリクエストはありません!

みんなありがとう。

于 2012-09-20T08:07:25.147 に答える