2016-06-01 3 views
0

Когда я вызываю GetReport, я получаю заголовки только для ответа с разделителями табуляции. Однако, когда я использую блокнот, RequestReport, RequestReportList, используя RequestId для получения GeneratedReportId, а затем GetReport с этим идентификатором. Я получаю ожидаемые результаты.Amazon MWS _GET_MERCHANT_LISTINGS_DATA_ пусто

У кого-нибудь есть идея, почему мой код не вытягивает отчет, как это делает scrathpad?

  RequestReportRequest request = new RequestReportRequest(); 
      request.Merchant = settings.SellerId; 
      request.MarketplaceIdList = new IdList(); 
      request.MarketplaceIdList.Id = new List<string>(new string[] { settings.MarketplaceId }); 
      request.ReportType = "_GET_MERCHANT_LISTINGS_DATA_"; 

      RequestReportResponse requestResponse = _mws.RequestReport(request); 
      Thread.Sleep(15000); 
      Console.WriteLine(requestResponse.RequestReportResult.ReportRequestInfo.ReportProcessingStatus); 
      GetReportRequestListRequest reportRequestListRequest = new GetReportRequestListRequest(); 

      reportRequestListRequest.Merchant = settings.SellerId; 
      List<ReportRequestInfo> requestInfos = new List<ReportRequestInfo>(); 

      GetReportRequestListResponse reportRequestListResponse = new GetReportRequestListResponse(); 
      reportRequestListResponse = _mws.GetReportRequestList(reportRequestListRequest); 
      GetReportRequestListResult reportRequestListResult = new GetReportRequestListResult(); 
      reportRequestListResult = reportRequestListResponse.GetReportRequestListResult; 
      requestInfos = reportRequestListResult.ReportRequestInfo; 

      while (requestInfos[0].ReportProcessingStatus.ToString() != "_DONE_") 
      { 
       Thread.Sleep(20000); 
       reportRequestListResponse = _mws.GetReportRequestList(reportRequestListRequest); 
       reportRequestListResult = reportRequestListResponse.GetReportRequestListResult; 
       requestInfos = reportRequestListResult.ReportRequestInfo; 

      } 

      GetReportListRequest listRequest = new GetReportListRequest(); 
      listRequest.Merchant = settings.SellerId; 
      listRequest.ReportRequestIdList = new IdList(); 
      listRequest.ReportRequestIdList.Id.Add(requestResponse.RequestReportResult.ReportRequestInfo.ReportRequestId); 

      GetReportListResponse listResponse = _mws.GetReportList(listRequest); 

      GetReportListResult getReportListResult = listResponse.GetReportListResult; 

      GetReportRequest reportRequest = new GetReportRequest(); 
      reportRequest.Merchant = settings.SellerId; 
      reportRequest.WithReportId(getReportListResult.ReportInfo[0].ReportId); 

      GetReportResponse reportResponse = new GetReportResponse(); 
      string fileName = dataPath + "\\report-" + getReportListResult.ReportInfo[0].ReportId + ".txt"; 
      reportRequest.Report = File.Open(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); 
      reportResponse = _mws.GetReport(reportRequest); 

ответ

1

Я удалил MarketplaceId из ReportRequest, и он отлично работает. Я не уверен, почему он не вытащил отчет, указав его, но он работает без информации.

Удалены эти 2 строки из кода выше.

 request.MarketplaceIdList = new IdList(); 
     request.MarketplaceIdList.Id = new List<string>(new string[] { settings.MarketplaceId });