Java Webservice Client - Soap request oder Http get



  • Bin gerade am proggen eines Webservice Clients in Swing, welcher auf einen Webservice zugreifen soll (mit einem Soap request oder http get). Mein Problem ist nun wie ich eins von beiden in meinen Client integrieren kann, d.h. wie behandle ich die Request - lese String den aus. Das Prog sollte spaeter ohne zusaetzlich imortierten Klassen auf einem "beliebigen" System mit JDK 1.4 kompelierbar sein... . Bin wirklich etwas rat los wie ich diese Request implementier ... Frage: Wo kann ich evtl. etwas z.b. beispiel code, tuts etc. finden, habe schon etwas gegoogelt, jedoch nichts brauchbares gefunden ...
    Danke fuer Eure Hilfe!!!!

    So sieht der Soap request aus:

    POST /elc/Sharetips.asmx HTTP/1.1
    Host: service.xyx.de
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://service.xyx.de/dge/Buy"
    
    xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <Buy xmlns="http://service.xyx.de/dge/" />
      </soap:Body>
    </soap:Envelope>
    

    Rueckgabe:

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <Buy xmlns="http://service.xyx.de/dge/" />
      </soap:Body>
    </soap:Envelope>
    

    oder vielleicht etwas einfacher per http get:

    GET /elc/Sharetips.asmx/Buy? HTTP/1.1
    Host: service.xyx.de
    

    Rueckgabe:

    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    
    <?xml version="1.0" encoding="utf-8"?>
    <string xmlns="http://service.xyx.de">string</string>
    


  • Ok, sowei bin ich schon mal ...

    import java.io.*;
    import java.net.*;
    
    public class getHeader{
    
        public void getHeader(){
    
        }
    
        public static void main(String argv[])throws MalformedURLException{
            String webContent;
            try{
                URL url = new URL("http://xyz.ac.uk/elc/Sharetips.asmx/Buy?");
                BufferedReader web = new BufferedReader(new InputStreamReader(url.openStream()));
                while((webContent = web.readLine()) != null) 
                {
                    System.out.println(webContent); 
                }
            }   
            catch(UnknownHostException e){ System.out.println(e); }
            catch(MalformedURLException e){ System.out.println(e); }
            catch(IOException e){ System.out.println(e); } 
        }
    
    }
    

    Ich bekomme also eine Antwort in der Form:

    <?xml version="1.0" encoding="utf-8"?>
    <string xmlns="http://xyz.ac.uk/dge/">string</string>

    Ich brauche aber nur den String ... wie, bzw. wo speichere den Stream und wie parse ich dann das File?


Anmelden zum Antworten