Я пытаюсь загрузить изображение в виде двоичного 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")
);
Я также использовал двоичные онлайн-конвертеры для преобразования изображения, но это тоже не сработало.Спасибо за любую помощь, спасибо.