private function invokePost($parameters)
{
$response = array();
$statusCode = 200;
$this->success = false;
// Submit the request and read response body
try {
$shouldRetry = true;
$retries = 0;
do {
try {
$this->constructUserAgentHeader();
$httpCurlRequest = new HttpCurl($this->config);
$response = $httpCurlRequest->httpPost($this->mwsServiceUrl, $this->userAgent, $parameters);
$curlResponseInfo = $httpCurlRequest->getCurlResponseInfo();
$statusCode = $curlResponseInfo["http_code"];
$this->logMessage($this->userAgent);
$response = array('Status' => $statusCode, 'ResponseBody' => $response);
$statusCode = $response['Status'];
if ($statusCode == 200) {
$shouldRetry = false;
$this->success = true;
} elseif ($statusCode == 500 || $statusCode == 503) {
$shouldRetry = true;
if ($shouldRetry && strtolower($this->config['handle_throttle'])) {
$this->pauseOnRetry(++$retries, $statusCode);
}
} else {
$shouldRetry = false;
}
} catch (\Exception $e) {
throw $e;
}
} while ($shouldRetry);
} catch (\Exception $se) {
throw $se;
}
$this->logMessage($this->sanitizeResponseData($response['ResponseBody']));
return $response;
}