2017-05-07 56 views
0

我試圖複製亞馬遜的UI工具進行的訪問他們的市場網絡服務(MWS API)以下HTTP請求模擬HTTP請求與暴食或捲曲

這是使用他們的UI工具時提出的要求。請注意,HTTP請求信息來自Google Chrome的開發者控制檯。

一般

請求URL:https://mws.amazonservices.com/Products/2011-10-01

請求方法:POST

狀態代碼:200 OK

遠程地址:54.239.24.6:443

引薦政策:降級時無引薦者

請求頭

POST /產品/ 2011-10-01 HTTP/1.1

主持人:mws.amazonservices.com

連接:保持活躍

的Content-Length :309

原產地:https://mws.amazonservices.com

x-amazon-user-agent:AmazonJavascriptScratchpad/1.0(Language = Javascript)

User-Agent:Mozilla/5.0(Windows NT 10.0; Win64平臺; x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/58.0.3029.81 Safari/537.36

內容類型:application/x-www-form-urlencoded;字符集= UTF-8

接受:文本/無格式,/

X-請求-隨着:XMLHttpRequest的

的Referer:https://mws.amazonservices.com/scratchpad/index.html

接受編碼:gzip,放氣,BR

Accept-Language:en-US,en; q = 0.8

Cookie:csm-hit = 20。82 | 1494090798243

表單數據

AWSAccessKeyId:{{API KEY}}

操作:GetMatchingProductForId

SellerId:{{API KEY}}

SignatureVersion:2

時間戳:2017-05-06T17:43:36Z

版本:2011-10-01

簽名:wVax9gw0DfIfeL7s4Z2IZynwwryi0c6tIkfE7IQY1RI =

是SignatureMethod:HmacSHA256

MarketplaceId:ATVPDKIKX0DER

IdType:UPC

IdList.Id.1:034264456730

這是我的PHP腳本使用Guz zleHTTP庫來嘗試和模擬請求。

<?php 

require './vendor/autoload.php'; 

use GuzzleHttp\Client; 

$body = 'AWSAccessKeyId=AKIAJFTQQL6UN7RO6WBQ&Action=GetMatchingProductForId&SellerId=AWWNSYIT4NM3&SignatureVersion=2&Timestamp=2017-05-06T17%3A43%3A36Z&Version=2011-10-01&Signature=wVax9gw0DfIfeL7s4Z2IZynwwryi0c6tIkfE7IQY1RI%3D&SignatureMethod=HmacSHA256&MarketplaceId=ATVPDKIKX0DER&IdType=UPC&IdList.Id.1=034264456730'; 

$jar = new \GuzzleHttp\Cookie\CookieJar(); 

$client = new Client([ 
    'base_uri'=>'https://mws.amazonservices.com', 
    'cookies'=>$jar, 
    'headers'=>[ 
     'User-Agent'=>'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36', 
     'Host'=> 'mws.amazonservices.com', 
     'Connection'=>'keep-alive', 
     'Content-Length'=>'309', 
     'Origin'=>'https://mws.amazonservices.com', 
     'x-amazon-user-agent'=>'AmazonJavascriptScratchpad/1.0 (Language=Javascript)', 
     'Content-Type'=>'application/x-www-form-urlencoded; charset=UTF-8', 
     'Accept'=>'text/plain, */*', 
     'X-Requested-With'=>'XMLHttpRequest', 
     'Referer'=>'https://mws.amazonservices.com/scratchpad/index.html', 
     'Accept-Encoding'=>'gzip, deflate, br', 
     'Accept-Language'=>'en-US,en;q=0.8', 
     ], 
    'body'=>$body, 
    ]); 

$response = $client->request('POST', 'https://mws.amazonservices.com/Products/2011-10-01'); 

echo $response->getStatusCode(); 

?> 
+0

你得到了什麼錯誤? –

+0

Agam,我收到了400個錯誤的請求 – mattchambers

回答

0

嘗試使用form_params,而不是body。並檢查響應,也許亞馬遜說,不僅僅是400 Bad Request(響應可能包含有關錯誤的更多細節)。