Ergebnis 1 bis 11 von 11
-
Mich gibt's schon länger
- 24.02.2012, 21:28
- #1
Hallo,
Wie kann ich ein Webservice (http://url.wsdl) in meine Windows Phone App einbinden?
Ich kann den Webservice ohne Probleme in eine Windows .NET Anwendung einbinden aber in einem Windows Phone Projekt ist die Schaltfläche "Webservice hinzufügen" ausgegraut.
Gibt es dort eine Möglichkeit ein solches Webservice einzubinden?
Vielen Dank schon mal im vorraus.
Johann Löwen
-
Mich gibt's schon länger
- 27.02.2012, 21:51
- #2
Hat keiner eine Idee ob dies möglich ist und wenn ja dann wie.
Mit der kostenlosen PocketPC.ch App von meinem HD7 T9292 aus geschrieben.
-
Mich gibt's schon länger
- 27.02.2012, 22:23
- #3
normalerweise machst du in deinem Solution Explorer rechtesklick auf References und dann wählt man "Add Service Reference..." aus. In dem oberen Feld gibst du die Adresse ein und unten der NameSpace, den du im Programm benutzen willst, ABER so wie ich das hier (http://forums.create.msdn.com/forums...px?PageIndex=2) herausgelesen habe funktioniert es iwie nicht ganz. also wenn du ein WCF Service nutzt, dann geht das ohne Probleme, aber bei anderen scheint es wohl Probleme bei der Rückgabe zu geben. Viele sagen, es kommen "null" Objekte/Daten zurück. Dies scheint aber nicht bei den Standardtypen zu sein wie String oder int. Lies dir am besten den Thread komplett durch, dort werden auch ein paar workarounds vorgeschlagen, vielleicht funktioniert ja einer.
und nicht vergessen "using ..." einzufügen
-
Mich gibt's schon länger
- 27.02.2012, 23:28
- #4
Danke für die Antwort.
In dem oben genannten Thread scheint es aber um ein anderes Problem zu gehen. Ist aber mein Fehler da meine Angaben nicht vollständig waren.
Ich habe gerade das ganze noch einmal versucht und mir ist die folgende Warnung aufgefallen:
Warnung für benutzerdefiniertes Tool: Contract is not compatible with Silverlight 3 because it contains one or more operations with SOAP Encoding (use='encoded'). Only the non-encoded operations will be generated.
Gibt es für mich als Benutzer des Dienstes eine Möglichkeit diesen Webservice dennoch zu verwenden?
-
Gehöre zum Inventar
- 28.02.2012, 08:15
- #5
Das Problem ist, dass Microsoft in Silverlight die Verwendung von SOAP-WebServices nicht unterstützt (das sind die, die das .Net Framework bis Version 3.0 standardmässig generiert hat mit ASP.Net). Mit Silverlight gehen meines Wissens nur noch REST-Services. Du kannst jedoch das WebService einfach selbst mittels HTTP aufrufen und das XML selbst parsen - das geht immer.
-
Mich gibt's schon länger
- 28.02.2012, 16:57
- #6
@StevieBallz: Danke für die Antwort. Hättest du für mich ein Beispiel wie ich einen Webservice per HTTP aufrufen kann. Oder geht das ganz normal mit einem HttpRequest? Aber wie gebe ich dabei die Methode und die Parameter an?
Mit der kostenlosen PocketPC.ch App von meinem HD7 T9292 aus geschrieben.
-
Mich gibt's schon länger
- 29.02.2012, 16:36
- #7
Ich habe mal ein wenig recherchiert.
Mit dem Soap Message Generator http://soapclient.com/soapmsg.html habe ich mir eine SoapMessage erstellt die wie folgt aussieht:
HTML-Code:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typens="urn:WebService_Customer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <SOAP-ENV:Body> <mns:GetSessionID xmlns:mns="urn:WebService_Customer" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <UserID xsi:type="xsd:integer">0000000</UserID> <UserCallname xsi:type="xsd:string">Name1</UserCallname> <UserName xsi:type="xsd:string">Name2</UserName> <PasswordHash xsi:type="xsd:string">PasswordHash</PasswordHash> </mns:GetSessionID> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Code:Public Function SoapRequest(ByVal webserviceURL As String, ByVal soapMessage As String) As Xml.XmlDocument Dim res As New Xml.XmlDocument() Using webClient As New Net.WebClient() webClient.Headers.Add("Content-Type", "application/soap+xml; charset=utf-8") res.LoadXml(webClient.UploadString(webserviceURL, soapMessage)) End Using Return res End Function
-
Gehöre zum Inventar
- 01.03.2012, 15:09
- #8
Wies sieht denn da deine webserviceURL aus? Wenn du da an die URL mit dem *.wsdl schickst, dann kriegst du bei einem Get trotzdem die WSDL zurück.
-
Mich gibt's schon länger
- 01.03.2012, 15:16
- #9
Die URL lautet: http://www.dvd-datenbank.com/webserv..._Customer.wsdl
Und als Antwort bekomme ich die gleiche XML-Struktur wie wenn ich die URL alleine im Browser ansteuere.
-
Mich gibt's schon länger
- 02.03.2012, 18:50
- #10
Ich habe mir jetzt mal "soapUI" heruntergeladen und es damit versucht. Es klappte auf anhieb also habe ich mir die Soap Messages von dort kopiert aber wenn ich die aus meinem Programm absende dann bekomme ich immer noch die gleiche Antwort wie bisher auch.
HTML-Code:<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WebService_Customer"> <soapenv:Header/> <soapenv:Body> <urn:GetSessionID soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <UserID xsi:type="xsd:integer">?</UserID> <UserCallname xsi:type="xsd:string">?</UserCallname> <UserName xsi:type="xsd:string">?</UserName> <PasswordHash xsi:type="xsd:string">?</PasswordHash> </urn:GetSessionID> </soapenv:Body> </soapenv:Envelope>
-
Mich gibt's schon länger
- 07.03.2012, 22:34
- #11
Habe das Problem nun endlich beheben können.
Die SOAP Nachrichten sind korrekt. Ich musste die "SoapRequest" Methode anpassen.
Für den der auch über solche Probleme stolpern sollte hinterlasse ich hier mal meine jetzt funktionierende Methoden:
Code:Private Sub SoapRequest(ByVal url As String, ByVal soapMessage As String, ByVal encoding As Text.Encoding) If (Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsNetworkAvailable) Then Try Dim webClient As New Net.WebClient() webClient.Headers(HttpRequestHeader.ContentType) = "text/xml" webClient.Encoding = encoding AddHandler webClient.UploadStringCompleted, AddressOf WebClient_UploadStringCompleted webClient.UploadStringAsync(New System.Uri(url, UriKind.Absolute), "POST", soapMessage) Catch ex As Exception End Try End If End Sub Private Sub WebClient_UploadStringCompleted(sender As Object, e As System.Net.UploadStringCompletedEventArgs) Dim xdoc As Xml.Linq.XDocument = Xml.Linq.XDocument.Parse(e.Result) 'Weiter verarbeitung End Sub
Ähnliche Themen
-
Frage: Muss ich eine Windows mobile 6.1 gekaufte App für Windows Phone 7 neu kaufen?
Von forumuser im Forum Windows Phone 7 AppsAntworten: 4Letzter Beitrag: 20.07.2011, 12:22
Pixel 10 Serie mit Problemen:...