Sample code for 30+ languages & platforms
B4X

MWS RequestReport (Amazon Marketplace Web Service)

See more Amazon MWS Examples

Creates a report request and submits the request to Amazon MWS.

See Amazon MWS RequestReport for more information.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

Dim rest As ChilkatRest
rest.Initialize("rest")

'  Connect to the Amazon MWS REST server.
'  
'  Make sure to connect to the correct Amazon MWS Endpoint, otherwise
'  you'll get an HTTP 401 response code.
'  
'  The possible servers are:
'  
'  North America (NA) 	https://mws.amazonservices.com
'  Europe (EU) 	https://mws-eu.amazonservices.com
'  India (IN) 	https://mws.amazonservices.in
'  China (CN) 	https://mws.amazonservices.com.cn
'  Japan (JP) 	https://mws.amazonservices.jp 
'  
Dim bTls As Boolean = True
Dim port As Int = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect("mws.amazonservices.com", port, bTls, bAutoReconnect)
If success <> True Then
    Log("ConnectFailReason: " & rest.ConnectFailReason)
    Log(rest.LastErrorText)
    Return
End If


rest.Host = "mws.amazonservices.com"

rest.AddQueryParam("AWSAccessKeyId", "0PB842EXAMPLE7N4ZTR2")
rest.AddQueryParam("Action", "RequestReport")
rest.AddQueryParam("EndDate", "2008-06-26T18:12:21")
rest.AddQueryParam("MWSAuthToken", "amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE")
rest.AddQueryParam("Marketplace", "ATVPDKIKX0DER")
rest.AddQueryParam("ReportType", "_GET_MERCHANT_LISTINGS_DATA_")
rest.AddQueryParam("SellerId", "A1XEXAMPLE5E6")
rest.AddQueryParam("SignatureMethod", "HmacSHA256")
rest.AddQueryParam("SignatureVersion", "2")
rest.AddQueryParam("StartDate", "2009-01-03T18:12:21")
rest.AddQueryParam("Version", "2009-01-01")

'  Add the MWS Signature param.  (Also adds the Timestamp parameter using the curent system date/time.)
'  The AddMwsSignature method adds the Timestamp and Signature query params.
rest.AddMwsSignature("POST", "/Reports/2009-01-01", "mws.amazonservices.com", "MWS_SECRET_KEY")

Dim responseXml As String = rest.FullRequestFormUrlEncoded("POST", "/Reports/2009-01-01")
If rest.LastMethodSuccess <> True Then
    Log(rest.LastErrorText)
    Return
End If


If rest.ResponseStatusCode <> 200 Then
    '  Examine the request/response to see what happened.
    Log("response status code = " & rest.ResponseStatusCode)
    Log("response status text = " & rest.ResponseStatusText)
    Log("response header: " & rest.ResponseHeader)
    Log("response body: " & responseXml)
    Log("---")
    Log("LastRequestStartLine: " & rest.LastRequestStartLine)
    Log("LastRequestHeader: " & rest.LastRequestHeader)
End If


'  Examine the XML returned in the response body.
Log(responseXml)
Log("----")
Log("Success.")

'  Sample Response

'  Use this online tool to generate parsing code from sample XML: 
'  Generate Parsing Code from XML

'  <?xml version="1.0"?>
'  <RequestReportResponse
'      xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
'      <RequestReportResult>
'          <ReportRequestInfo>
'              <ReportRequestId>2291326454</ReportRequestId>
'              <ReportType>_GET_MERCHANT_LISTINGS_DATA_</ReportType>
'              <StartDate>2009-01-21T02:10:39+00:00</StartDate>
'              <EndDate>2009-02-13T02:10:39+00:00</EndDate>
'              <Scheduled>false</Scheduled>
'              <SubmittedDate>2009-02-20T02:10:39+00:00</SubmittedDate>
'              <ReportProcessingStatus>_SUBMITTED_</ReportProcessingStatus>
'          </ReportRequestInfo>
'      </RequestReportResult>
'      <ResponseMetadata>
'          <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
'      </ResponseMetadata>
'  </RequestReportResponse>

Dim xml As ChilkatXml
xml.Initialize
xml.LoadXml(responseXml)

Dim RequestReportResponse_xmlns As String = xml.GetAttrValue("xmlns")
Dim ReportRequestId As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportRequestId")
Dim ReportType As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportType")
Dim StartDate As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|StartDate")
Dim EndDate As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|EndDate")
Dim Scheduled As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|Scheduled")
Dim SubmittedDate As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|SubmittedDate")
Dim ReportProcessingStatus As String = xml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportProcessingStatus")
Dim RequestId As String = xml.GetChildContent("ResponseMetadata|RequestId")