[英]Amazon Seller Central - SP-API - Create a feed document - InvalidInput
嘗試創建提要文檔( 此處)並且我收到InvalidInput
錯誤代碼。 身份驗證效果很好(我嘗試了其他端點並且它有效)所以我認為標頭不是問題。
這是我的示例代碼:
endpoint = 'https://sellingpartnerapi-eu.amazon.com/feeds/2020-09-04/documents'
body = {
"contentType": "text/tab-separated-values; charset=UTF-8"
}
resp = requests.post(
endpoint,
auth=self.amazon_auth.auth,
headers=self.amazon_auth.headers,
json=body
)
return resp
響應代碼:
{'errors': [{'code': 'InvalidInput',
'message': 'Invalid Input',
'details': ''}]}
我也嘗試使用不同的contentType
和 charset (如text/plain
)但我收到相同的錯誤代碼!
這是提交提要教程的第一步。
我正在嘗試創建提要,以便讓cartonIds
下載我在亞馬遜賣家中心創建的貨件的標簽。
任何提示,幫助都非常受歡迎!
謝謝!
我使用 RestSharp restRequest1.AddParameter(....); 給了我和你一樣的錯誤 Invalid Input 但下面的行給了我一個響應值 restRequest1.AddJsonBody(new { contentType = "text/xml; charset=UTF-8" }); 它將 obj 序列化為 json 格式並將其添加到請求正文中。
我通過以下方式解決了這個問題:
requests.post(data=json.dumps(body))
還要確保你也傳遞身體以進行簽名
C# 中的這個代碼片段對我有用,我成功上傳了一個提要
我的上傳方法:
private static bool UploadFile(byte[] encrypted, string url)
{
bool isUploaded = false;
var contentType = "text/tab-separated-values; charset=UTF-8";
var parameter = new Parameter
{
Name = contentType,
Value = encrypted,
Type = ParameterType.RequestBody
};
var restRequest = new RestRequest(Method.PUT);
restRequest.Parameters.Add(parameter);
var restClient = new RestClient(url);
var response = restClient.Execute(restRequest);
isUploaded = response.StatusCode == System.Net.HttpStatusCode.OK;
return isUploaded;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.