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);

		    // Split the API response into Response Body and the other parts of the response into other
                    list($other, $responseBody) = explode("\r\n\r\n", $response, 2);
                    $other = preg_split("/\r\n|\n|\r/", $other);

                    list($protocol, $code, $text) = explode(' ', trim(array_shift($other)), 3);
                    $response = array(
                        'Status' => (int) $code,
                        'ResponseBody' => $responseBody
                    );

		    $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;
        }

        return $response;
    }
 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"];
                 $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;
     }
     return $response;
 }