Bonjour,
J'ai une documentation et un WSDL, jusqu'ici c'est plutôt des bonnes nouvelles.
J'ai importé le WSDL en référence et je retrouve bien OrderServiceV1_10PortChannel.
La documentation indique que le header doit être envoyé à chaque appelle et donne l'exemple ci-dessous.
J'ai créé une application console pour tester
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 using (new OperationContextScope(api.InnerChannel)) { var httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("11111111111111:pppppppp")); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; // Appel à une méthode du service api.method(...); }
Le soucis (ou pas) est que OrderServiceV1_10PortChannel est une interface et que je ne peux pas créer de nouvelle instance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 static void Main(string[] args) { var api = new apiSp2Web.OrderServiceV1_10PortChannel(); using (new OperationContextScope(api)) { var httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("11111111111111:pppppppp")); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; // Appel à une méthode du service // api.method(...); var response = api.OrderStatus("838-488-931"); } }
Pouvez-vous m'expliquer ce que je fais mal ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public interface OrderServiceV1_10PortChannel : apiSp2Web.OrderServiceV1_10Port, System.ServiceModel.IClientChannel
Merci par avance.
Gshin
Partager