2

キーワードの検索製品を取得しようとしています

私のコード:

$searchquery = "ipod";
$api_endpoint = "http://api.walmartlabs.com/v1/search";
$postfields = "apiKey=". $appid ."&query=" . $searchquery;
//$postfields = array('apiKey' => $appid, 'query' => $searchquery);
$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, $api_endpoint);
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);
//curl_setopt($connection, CURLOPT_HTTPHEADER, $headers);
curl_setopt($connection, CURLOPT_POST, true);
curl_setopt($connection, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($connection, CURLOPT_HEADER, true);
//curl_setopt($connection, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($connection);
curl_close($connection);
print_r($api_endpoint);

print_r($response);

ブラウザで api.walmartlabs.com/v1/search?apiKey={appid}&query=ipod にアクセスすると、結果が表示されますが、 curl を使用しようとすると、「Action Not Found」と表示されます

これがスクリーンショットです

どんな助けでも大歓迎です。

4

2 に答える 2

2

ドキュメント ( https://developer.walmartlabs.com/io-docs ) を見ると、サーバーが GET 要求を予期しているようです。

POST リクエストを GET リクエストに置き換えるだけで問題ありません

$searchquery = "ipod";
$api_endpoint = "http://api.walmartlabs.com/v1/search";
$urlParams = "apiKey=". $appid ."&query=" . $searchquery;

$fullUrl = $api_endpoint . '?' . $urlParams;

$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, $fullUrl);
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($connection, CURLOPT_HEADER, true);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($connection);
curl_close($connection);

print_r($api_endpoint);
print_r($response);
于 2017-01-12T09:50:33.683 に答える