我正在使用亚马逊的Marketplace SDK发布产品Feed。我得到这样的例外:
Caught Exception: Internal Error
Response Status Code: 0
Error Code:
Error Type:
Request ID:
XML:
ResponseHeaderMetadata:
将CURLOPT_SSL_VERIFYPEER设置为false(如建议的here)对我没有用。我还有例外。
有时(似乎是随机发生的)“响应状态代码”设置为413,服务器响应显示“请求实体太大”。
我已经测试了连接,Feed(使用Scratchpad)并成功使用SDK来获取报告和产品。我已经尝试从头开始重启(也使用SDK提供的示例)...每一件都可以正常工作。
这里是我的代码(省略了提取xml字符串):
$feedHandle = @fopen('php://memory', 'rw+');
fwrite($feedHandle, $feed);
rewind($feedHandle);
$mwsRequest = new MarketplaceWebService_Model_SubmitFeedRequest();
$mwsRequest->setMerchant(MERCHANT_ID);
$mwsRequest->setMarketplaceIdList($marketplaceIdArray);
$mwsRequest->setFeedType('_POST_PRODUCT_DATA_');
$mwsRequest->setContentMd5(base64_encode(md5(stream_get_contents($feedHandle), true)));
rewind($feedHandle);
$mwsRequest->setPurgeAndReplace(false);
$mwsRequest->setFeedContent($feedHandle);
try {
$response = $service->submitFeed($mwsRequest);
echo '<pre>' . print_r($response,true) . '</pre>';
} catch (MarketplaceWebService_Exception $ex) {
echo "<pre>";
echo("Caught Exception: " . $ex->getMessage() . "\n");
echo("Response Status Code: " . $ex->getStatusCode() . "\n");
echo("Error Code: " . $ex->getErrorCode() . "\n");
echo("Error Type: " . $ex->getErrorType() . "\n");
echo("Request ID: " . $ex->getRequestId() . "\n");
echo("XML: " . $ex->getXML() . "\n");
echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
echo "</pre>";
}
有没有人有同样的问题?提前谢谢。