سؤال

لدي سؤال بسيط، من أجلك، أنني لا أستطيع أن أبدو رأيي.

الوضع هو ما يلي:

  • ننشئ وإرسال طلب إلى خدمة ويب، باستخدام WSE 3.
  • تتم كتابة خدمة الويب في Java.

معظم الأشياء على ما يرام، لكنني لا أستطيع أن يكون لدي تأثير على Contenttype إما من Webresuest أو Webresponse وهذا يسبب بعض المشكلات.

artormessage أحصل على الحصول عليها هو ما يلي:

عثر العميل على نوع محتوى استجابة من "التطبيق / XOP + XML؛ اكتب =" النص / xml؛ Charset = utf-8 "" نص "ولكن متوقع" نص / XML ". فشل الطلب مع رسالة الخطأ: ....

في تفاصيل رسالة الخطأ، يكون لديك استجابة مكالمة لدينا من الخادم وهي تأتي بشكل صحيح. من الواضح أنها ليست جيدة كما هي في الوقت الحالي حيث إنها تأتي من خلال استثناء :).

لذلك، كيف يمكنني تعيين نوع المحتوى المتوقع للاستجابة؟

إذا كنت صحيحة، يجب أن يكون لدى الطلب والاستجابة في WSE 3.0 نفس contenttype. لذلك اعتقدت أنني سأحاول ضبط الطلب. رأس [httpreceestheader.contenttype] إلى واحد المتوقع، ولكن دون حظ. (أيضا، يمكنني تعيين محتوى HttpWebRequest في عدد قليل جدا من الأماكن، ولكن لا يبدو أي منهم خدعة)

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

المحلول

تم حل هذا لحسن الحظ، حتى هنا هو الحل المرجع المستقبلي:

يروع عميلنا من فئة WebSerVicesClientProtocol، حيث توجد طريقة تسمى GetWebresponse (..). ببساطة تجاوز تلك الطريقة وتغيير المحتوى من الاستجابة بدت أن تعمل لنا.

    protected override WebResponse GetWebResponse(System.Net.WebRequest request)
    {
        WebResponse response = base.GetWebResponse(request);
        response.Headers[HttpResponseHeader.ContentType] = "text/xml";
        return response;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top