0

私はGuzzleを初めて使用し、次のREST呼び出しを生成しようとしています。

https://product-search.api.cj.com/v2/product-search?website-id=1594990&keywords=%2Bsony+-camera

GET /v2/product-search?website-id=1594990&keywords=%2Bsony+-camera HTTP/1.1
Host: link-search.api.cj.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: __utma=128446558.2099392322683464700.1239639722.1239639722.1239927095.2; __utmz=128446558.1239639722.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); CONTID=8073; cjuMember=0; JSESSIONID=aM5RSWdqdd_5
Authorization: YOUR DEV KEY HERE

HTTP/1.x 200 OK
Server: Resin/2.1.17
Content-Type: application/xml
Transfer-Encoding: chunked
Date: Thu, 26 Apr 2009 10:25:03 GMT

私は次のPHPコードを使用しています:

$client = new Client('https://linksearch.api.cj.com', array(
    'id' => $website_id,
    'keywords' => 'sony',
));
$request = $client->get("v2/link-search?website-id={id}&keywords={keywords}");
$request->addHeader('Authorization', $dev_key);
$response = $request->send();

ここでの問題は、addHeader()ステートメントを使用すると「BadRequest」という応答が返され、addHeader()を使用しないと「Unauthorized」と表示されることです。認証情報を正しく送信していないようです。私がここで間違っていることを誰かが知っていますか?

4

2 に答える 2

2

ここでの実際の問題は次のとおりです。

1) ヘッダー 'authorization' は大文字と小文字が区別される場合があり、小文字にする必要がある場合があります。

2) ウェブサイト ID であっても、リクエスト パラメータのいずれかが正しくない場合、400 エラーがスローされます。400 エラーは、「認証以外の理由でリクエストが無効でした」ことを意味します。

于 2013-03-14T06:19:16.740 に答える