簡體   English   中英

亞馬遜賣家中心 - SP-API - 創建提要文檔 - InvalidInput

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM