Je n arrive pas a passer en parametre a un web service un nom d utilisateur et un mot de passe.
J ai regarde pas mal d exemples mais rien a faire, le programme n envoie pas dans l entete le nom et le mot de passe
J ai généré avec VS le code de la clase qui permet l acces au web service et normalement j ai juste à l appeler
La classe générée par VS est
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
16
17
18
19
20
21
22
23 ConsoleApplication1.SapData.GetDataService getDataService = new ConsoleApplication1.SapData.GetDataService(); // set the credention for the web service System.Net.NetworkCredential crd = new System.Net.NetworkCredential("usr", "passwd"); //ne marche pas avec ou sans CredentialCache System.Net.CredentialCache credCache = new System.Net.CredentialCache(); //credCache.Add(new Uri("http://17.29.29.32"), "Basic",crd); //credCache.Add(new Uri("http://frel0021.tutu.fr"), "Basic", crd); //credCache.Add(new Uri("http://17.29.29.32:50100/irj/servlet/prt/soap/com.sap.portal.prt.soap.GetData"), "Basic", crd); getDataService.Credentials = crd; getDataService.UseDefaultCredentials = false; getDataService.PreAuthenticate = true; //create the web service request string request = "Administrator";//request the details about admin account //call the web service string valueFromWebService = getDataService.getUserDetails(request); //et j ai ici une exception car aucun mot de passe a été fournit !
Wireshark me permet de lire ce qui est envoyé. J ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.3053")] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="com.sap.portal.prt.soap.GetDataBinding", Namespace="prt:service:com.conti.tma.webservice.GetData")] public partial class GetDataService : System.Web.Services.Protocols.SoapHttpClientProtocol {
Il manque bien Authorization: Basic QWRt….
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 POST /irj/servlet/prt/soap/com.sap.portal.prt.soap.GetData?style=doc_lit HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3082) Content-Type: text/xml; charset=utf-8 SOAPAction: "prt:service:com.conti.tma.webservice.GetData.GetData/getUserDetails0" Host: 17.29.29.32:50100 Content-Length: 377 Expect: 100-continue Connection: Keep-Alive
Quelqu un a t il une idée pourquoi ca ne marche pas ? ou un exemple d acces a un service web avec un mot de passe qui fonctionne ?
merci !
Partager