Laden...

Accept Language hinzufügen bei Webservice

Erstellt von Ploetzi vor 10 Jahren Letzter Beitrag vor 10 Jahren 969 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 10 Jahren
Accept Language hinzufügen bei Webservice

Hallo,
ich habe einen Webservice
http://staging.rbc.ch/schober/salesreport/services/data/mobiledataservice.asmx

den ich in meiner applikation wie folgt habe:

public static 	staging.rbc.ch.MobileDataService Client;

Wie setze ich nun "Generell" für diesen Client eine Accept Language auf englisch?

16.807 Beiträge seit 2008
vor 10 Jahren

In dem Du die Header des Requests manuell bearbeitest.
Das geht entweder beim Call oder generell in der web.config

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 10 Jahren

Hallo,
also mir wurde jetzt vorgeschlagen eine Klasse zu machen:

using System;
using System.Web.Services.Protocols;
namespace Schober
{
	public class LanguageSoapHttpClientProtocol : SoapHttpClientProtocol
	{
		protected override System.Net.WebRequest GetWebRequest(Uri uri)
		{
			var request = base.GetWebRequest(uri);
			request.Headers.Add("Accept-Language", "en"); //en ersetzen mit dynamischer Sprache
			return request;
		}
	}
}

Aber wie nutze ich diese nun ?

So funktioniert es nicht:


		public static 	 LanguageSoapHttpClientProtocol Client;

und dann:


			Settings.Client = new staging.rbc.ch.MobileDataService ();

16.807 Beiträge seit 2008
vor 10 Jahren

Wer hat Dir das vorgeschlagen? Der wird Dir sicher auch sagen, wie man das nutzt.

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 10 Jahren

Jain. Mir schon klar, das ist eine vererbte Klasse. Aber Wie initiere ich das.

Auch diese Info hilft mir nicht:
Die Klasse MobileDataService muss von LanguageSoapHttpClientProtocol erben.

Public Class MobileDataService : LanguageSoapHttpClientProtocol

Anschliessend können Sie den Service wie bis anhin verwenden.

public static staging.rbc.ch.MobileDataService Client;

Client = new staging.rbc.ch.MobileDataService ();

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 10 Jahren

Gelöst!

Zur Info an alle:
Man muss die Reference.cs manipulieren.

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo Ploetzi,

Man muss die Reference.cs manipulieren.

Wenn ich mich nicht irre, steht in dieser Datei oben ein Kommentar der auch beachtet werden sollte. Sonst ist beim nächsten Update die Änderung schon wieder weg.

Da die Klasse partial ist, wenn ich mich abermals nicht irre 😉, so ist es besser diese so zu erweitern/bearbeiten.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"