بدائل لإرسال صورة في base64 في طريق وثيقة SOAP الحرفي

StackOverflow https://stackoverflow.com/questions/817021

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا تعديل حاليا وثيقة خدمة SOAP حرفية لتطبيقات الأعمال التي تنقل البيانات عن العملاء الوراء وإلى الأمام.

لقد فقط تم التعرف على متطلبات جديدة لنقل الصور الممسوحة ضوئيا وثيقة. مشكلة لدي هو أن اللغة الملكية يمكنني استخدام لا يدعم إرفاق ملفات SOAP.

والصور نقلهم يمكن أن يكون أي شيء تصل 32KB.

والحل الوحيد الذي يمكنني أن أفكر من هو base64 في ترميز الصورة، وتمر من خلال كعنصر من عناصر وثيقة XML.

وهذا يبدو وكأنه فكرة سيئة حقا، ولكن لا يمكنني التفكير في أي شيء أفضل.

وأي أفكار؟

وتحرير: نسيت أن أذكر أن الصورة لم تجر بعد في نظام الملفات، يتم تخزينها في قاعدة بيانات أوراكل، وهو ما لم يكن لديك القدرة على الاتصال مباشرة،

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم XML كآلية لنقل البيانات، لديك لترميز الصورة بطريقة أو بأخرى. والسبب هو أن XML هو تنسيق النص، وسوف معالج XML محاولة لفك البيانات الثنائية كما لو انها نص (أكثر تحديدا، كما لو انها UTF-8 ما لم يتم تحديد ترميز مختلف). وعلاوة على ذلك، XML يرفض صراحة عدة شخصيات (معظم ASCII غير الجميلات لXML 1.0 \ u0000 لXML 1.1)، لذلك عليك الفاسدة البيانات الخاصة بك إذا كنت مجرد تفريغ بيانات الصورة إلى (مثلا) قسم CDATA.

وتحرير: XML مخطط يحدد ل "base64Binary" نوع، حتى تتمكن يجب أن تكون قادرة على تحديد WSDL بشكل مناسب (على افتراض أن كنت تستخدم marshaller الآلي). على الأقل، يجب استخدام "XSI: نوع" السمة على عنصر يحتوي على محتوى المشفرة الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top