[ torb-d-man @ 02.09.2008. 22:18 ] @
Kako se poziva eksterni web servis iz ASP.NET aplikacije ? (može i VB i C#)
Imam url do web servisa npr.
'http://webservices.nbs.yu/Comm.../TempExchangeRatesService.asmx' i njegovog objašnjenja
'http://webservices.nbs.yu/Comm...ExchangeRatesService.asmx?WSDL'
Dodao sam ovaj servis u svoju aplikaciju..
U Solution Exploreru desni klik na moj projekat >> Add Web Reference >> u polje URL pejstovao adresu web servisa i
dao sam ime toj referenci >> klik Add Reference. U folderu 'App_WebReferences' vs je napravio tri fajla (TempExchangeRatesService.disco, TempExchangeRatesService.discomap, TempExchangeRatesService.wsdl).
Za sada sam pokušao ovako:
Code:

Dim proxy As New ime_reference.TempExchangeRatesService
Dim dg As DataGrid
dg = New DataGrid()
dg.ID = "dgList"
ds = proxy.GetCurrentExchangeRates(CDbl(1)) 'zato što ova metoda prima decimalni parametar vrednosti 1,2 ili 3.
dg.DataSource = ds
dg.DataBind()
Me.Page.Controls.Add(dg)

.. ali ne ide. Našao sam na netu da treba da se pišu SOAP poruke i da treba da se dobije proksi kao *.DLL? ali nigde jasan i konkretan primar kako. Nisam nikad radio sa web servisima pa mi neke stvari nisu jasne. Dakle, ne želim da napravim web servis
već da iskoristim postojeći koji se nalazi na netu. Ako neko zna gde može da se nađe primer za to neka javi.
Ili, još bolje, ako se neko ovim već bavio neka napiše kod (sintaksu) za korišćenje eksternog web servisa.
Unapred hvala na svakoj pmoći.
[ mmix @ 06.09.2008. 12:51 ] @
Nije ti problem u kodu vec u nekompletnosti. Ako pogledas WSDL videces da servis zahteva prissutvo AuthenticationHeader-a, tako da ovaj servis nije javni, moras da se "predstavis" servisu sa brojem licence, korisnickim imenom i lozinkom, po tome bih rekao da je ovaj servis namenjen samo firmama sa licencom (bankama i menjacnicama), ako nemas licencu nemas ni pristup servisu:

Code:

            nbsservice.TempExchangeRatesService proxy = new nbsservice.TempExchangeRatesService();
            nbsservice.AuthenticationHeader auth = new nbsservice.AuthenticationHeader();
            auth.LicenceID = 123456789;
            auth.UserName = "mojuser";
            auth.Password = "mojpassword";
            proxy.AuthenticationHeaderValue = auth;
            DataSet ds = proxy.GetCurrentExchangeRates(1m);


[ torb-d-man @ 06.09.2008. 18:42 ] @
Odlično, sada radi, pošto raspolažem tim informacijama. Problem je bio što nisam znao kako da ih iskoristim tj. kako da pošaljem taj Authentication. Napravio sam da na klik dugmeta odradi taj kod i on sada napravi DataGrid kontrolu i stavi je na vrh strane (top 0, left 0). Tako da ću morati malo da poradim na načinu gde i kako da prihvatim ove podatke... Ali u svakom slučaju hvala na pomoći.
[ ntosha @ 25.09.2008. 08:26 ] @
Da li mi neko moze preporuciti literaturu za pocetnike za Visual Studio C# i Web servise