ebay api error Загруженное изображение имеет неподдерживаемый формат файла - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь загрузить изображение в виде двоичного MIME-вложения в ebays api UploadSiteHostedPictures.Я продолжаю получать следующую ошибку: Загруженное изображение имеет неподдерживаемый формат файла.Изображение в формате jpg, но я пробовал png, и это тоже не сработало.

Я прошел примеры из jB и c # на базе знаний eBay, и я не могу понять, где я иду не так.

Здесь я передаю файл изображения.

List<int> imageBytes = imageFile.readAsBytesSync();
String base64Image = base64Encode(imageBytes);

Заголовок

Map<String, String> uploadPictureHeader = {'X-EBAY-API-CALL-NAME': 'UploadSiteHostedPictures', 'X-EBAY-API-SITEID': '0', 'X-EBAY-API-RESPONSE-ENCODING': 'XML', 
                                              'X-EBAY-API-COMPATIBILITY-LEVEL': '967', 'X-EBAY-API-DETAIL-LEVEL': '0', 'Cache-Control': 'no-cache', 
                                              'Content-Type': 'multipart/form-data; boundary=FormBoundary7MA4YWxkTrZu0gW'};

Тело

String requestUploadedSiteHostedPicture = '''--FormBoundary7MA4YWxkTrZu0gW
                                                    Content-Disposition: form-data; name="XML Payload"

                                                    <?xml version="1.0" encoding="utf-8"?>
                                                    <UploadSiteHostedPicturesRequest xmlns="urn:ebay:apis:eBLBaseComponents">
                                                        <RequesterCredentials>
                                                            <eBayAuthToken >$userTokenOAuth</eBayAuthToken>
                                                        </RequesterCredentials>
                                                        <PictureName>Vase</PictureName>
                                                        <PictureSet>Standard</PictureSet>
                                                        <ExtensionInDays>20</ExtensionInDays>
                                                    </UploadSiteHostedPicturesRequest>

                                                    --FormBoundary7MA4YWxkTrZu0gW
                                                    Content-Disposition: form-data; name="Vase"; filename="Vase.jpg"
                                                    Content-Transfer-Encoding: base64

                                                    $base64Image

                                                    --FormBoundary7MA4YWxkTrZu0gW--''';

Посылка вызова

final response = await http.post(
      url,
      headers: uploadPictureHeader,
      body: requestUploadedSiteHostedPicture,
      encoding: Encoding.getByName("UTF-8")
    );

Я также использовал двоичные онлайн-конвертеры для преобразования изображения, но это тоже не сработало.Спасибо за любую помощь, спасибо.

...