none
WSDL Client mit UTF8 RRS feed

  • Frage

  • Hallo,

    ich habe das Problem, dass ich einen WSDL Client verwende, der die Daten als UTF8 überstellt bekommen möchte. Kann ich das irgendwo einstellen?

    Gruß MaGa


    Gruß MaGa

    Freitag, 14. Dezember 2012 11:28

Antworten

  • Hallo,

    wir haben den Fehler gefunden. Es lang am Serverservice. Aber mal eine dumme Frage, wie wenn nicht WSDL-Client soll man den durch VS automatisch generierten Client denn nennen (ernst gemeinte Frage)? Insbesondere wenn man mit dieser Art zugriff bisher kaum Berührungskontakte hatte.

    MIr ist schon klar, dass VS nur aufgrund des WSDL-Standarts hier automaitsch einen SOAP-Client erstellt. Aber man kann ja nicht "in die Tiefe schauen" um zu sehen was dort alles passiert. Was mein Problem war, um zu erkennen wo der Fehler liegt.


    Gruß MaGa

    Montag, 17. Dezember 2012 08:00

Alle Antworten

  • Hi,

    wo willst Du was einstellen? Wie greift was auf was zu? Was ist "was" in deinem Fall?

    Um dir helfen zu können, müsstest Du doch etwas mehr ins Detail gehen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 14. Dezember 2012 11:43
    Moderator
  • Hallo MaGa,

    hast Du Dir die WSDL man angesehen, die Dein Service liefert?

    Das sieht mit Sicherheit so aus und gleich am Anfang steht das Encoding: UTF-8

    <?xml version="1.0" encoding="utf-8" ?> 
    - <wsdl:definitions name="....


    Olaf Helper

    Blog Xing

    Freitag, 14. Dezember 2012 12:09
  • Hallo zusammen,

    Einstellen --> natürlich in meinen Programm, also beim Client.

    Es ist ein Standartclient der durch den Automatismus erstellt wurde, den VS für WDSL zur Verfügung stellt. Also Add Reference... usw.

    Die WSDL-Schnittstelle verlangt laut Webprogrammierer die Daten als UDF-8 codiert. Vermutlich werden sie zur Zeit aber als Ascii gesendet und empfangen. Damit habe ich Probleme mit Sonderzeichen.

    Der Webprogrammierer hat auch nicht so viel Erfahrung mit WSDL/SOAP-Schnittstellen. Der Fehelr kann also auch in der WSDL sein. Bisher wird die Webschnittstelle nur per PHP/SOAP gesteuert und dort werden die Daten als UTF-8 gesendet. Ich steuere sie aber per C#/WSDL an.

    Und es gibt halt Probleme mit dem Zeichensatz. Also den Sonderzeichen. Diese kommen bei der Schnittstelle nicht korrekt an.

    Hier ein Auszug aus der WSDL

    <?xml version ='1.0' encoding ='UTF-8' ?>
    <definitions name='Service'
      targetNamespace='...'
      xmlns:tns='https://www.auskunft.inkassounternehmen.de/Webservice'
      xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
      xmlns:xsd='http://www.w3.org/2001/XMLSchema'
      xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
      xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
      xmlns='http://schemas.xmlsoap.org/wsdl/'><message name="consumerData">
            <part name="user" type="xsd:string"/>
            <part name="password" type="xsd:string"/>
            <part name="reason" type="xsd:short"/>
            <part name="firstname" type="xsd:string"/>
            <part name="name" type="xsd:string"/>
            <part name="street" type="xsd:string"/>
            <part name="number" type="xsd:string"/>
            <part name="zip" type="xsd:string"/>
            <part name="city" type="xsd:string"/>
            <part name="telephone" type="xsd:string"/>
            <part name="email" type="xsd:string"/>
            <part name="birthday" type="xsd:string"/>
            <part name="file_reference" type="xsd:string"/>
            <part name="jur" type="xsd:boolean"/>
            <part name="full" type="xsd:boolean"/>
        </message><portType name='getConsumerCheck'>
            <operation name='getConsumerCheck'>
                <input message='tns:consumerData' name="consumerData"/>
                <output message='tns:score' name="score"/>
            </operation>
        </portType> <message name="score">
            <part name="intOrError" type="xsd:string"/>
        </message>


    Gruß MaGa

    Freitag, 14. Dezember 2012 12:16
  • Und es gibt halt Probleme mit dem Zeichensatz. Also den Sonderzeichen. Diese kommen bei der Schnittstelle nicht korrekt an.

    Welche Umlaut in der Wsdl? Zum einen sehe ich bei Dir keine, zum anderen ist WSDL XML und da werden Sonderzeichen entsprechend codiert.

    Z.B. der tolle Property-Name "NameÜäßµUmlaute" wird so in WSDL XML dargestellt:

    <xs:sequence>
      <xs:element name="NameÜäß_x00B5_Umlaute" type="xs:string" nillable="true" minOccurs="0"/>
    </xs:sequence>
    Oder meinst Du Probleme mit den später über den Service gelieferten Daten, was nichts mit WSDL zu tun hätte?

    Olaf Helper

    Blog Xing

    Freitag, 14. Dezember 2012 13:54
  • Ich spreche nicht von Umlauten in der WSDL. Sondern Daten die über den WSDL/SOAP-Client gesendet und Empfangen werden. Der Client sendet diese scheinbar als Ascii (oder einen anderen Zeichensatz) und der Server verlangt an seiner Schnittstelle UTF8.

    Gruß MaGa

    Freitag, 14. Dezember 2012 13:57
  • Sondern Daten die über den WSDL/SOAP-Client gesendet und Empfangen werden.

    WSDL = Web Service Definition Language; das definiert nur die Schnittstelle.

    Senden tut der Service / Client und wenn da was nicht richtig läuft, muss Du auf der Seite nach dem Problem suchen; nicht in der WSDL.


    Olaf Helper

    Blog Xing

    Freitag, 14. Dezember 2012 15:20
  • Ganau danach frage ich doch. Wie stelle ich den WSDL Client ein, dass er in UTF-8 sendet.

    Gruß MaGa

    Freitag, 14. Dezember 2012 15:51
  • Hallo,

    wir haben den Fehler gefunden. Es lang am Serverservice. Aber mal eine dumme Frage, wie wenn nicht WSDL-Client soll man den durch VS automatisch generierten Client denn nennen (ernst gemeinte Frage)? Insbesondere wenn man mit dieser Art zugriff bisher kaum Berührungskontakte hatte.

    MIr ist schon klar, dass VS nur aufgrund des WSDL-Standarts hier automaitsch einen SOAP-Client erstellt. Aber man kann ja nicht "in die Tiefe schauen" um zu sehen was dort alles passiert. Was mein Problem war, um zu erkennen wo der Fehler liegt.


    Gruß MaGa

    Montag, 17. Dezember 2012 08:00