Telenet API request fails

Plaats reactie
click66
Starter
Starter
Berichten: 6
Lid geworden op: 23 apr 2014, 13:49

Beste,

Ik ben de API van telenet eens aan het uittesten en ik wou een HTTP POST request sturen in java. Nu ik doe dit op deze manier:

Code: Selecteer alles

   try {
            String xmldata = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                    "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns1=\"http://www.telenet.be/TelemeterService/\">\n" +
                    "  <SOAP-ENV:Body>\n" +
                    "    <ns1:RetrieveUsageRequest>\n" +
                    "      <UserId>test</UserId>\n" +
                    "      <Password>test</Password>\n" +
                    "    </ns1:RetrieveUsageRequest>\n" +
                    "  </SOAP-ENV:Body>\n" +
                    "</SOAP-ENV:Envelope>";
            URL myurl = new URL("https://t4t.services.telenet.be/TelemeterService");
            HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
            con.setRequestMethod("POST");

            con.setRequestProperty("Content-length", String.valueOf(xmldata.length()));
            con.setRequestProperty("Content-Type", "text/xml; charset=\\\"utf-8\\\"\\r\\n");
            con.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36");
            con.setDoOutput(true);
            con.setDoInput(true);

            DataOutputStream output = new DataOutputStream(con.getOutputStream());


            output.writeBytes(xmldata);

            output.close();

            DataInputStream input = new DataInputStream(con.getInputStream());


            for (int c = input.read(); c != -1; c = input.read())
                System.out.print((char) c);
            input.close();

            System.out.println("Resp Code:" + con.getResponseCode());
            System.out.println("Resp Message:" + con.getResponseMessage());
        }
        catch (IOException se)
        {
            se.printStackTrace();
        }
IK krijg volgende exception:

Code: Selecteer alles

java.io.IOException: Server returned HTTP response code: 500 for URL: https://t4t.services.telenet.be/TelemeterService
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1459)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
	at be.telenet.telemeterservice.Main.main(Main.java:42)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Kan er iemand me helpen wat er fout is?
8balljunkie
Pro Member
Pro Member
Berichten: 352
Lid geworden op: 30 mei 2012, 10:31
Uitgedeelde bedankjes: 29 keer
Bedankt: 29 keer

een 500 error kan zijn dat je fouten in de XML/SOAP hebt staan of de parameters niet overeenkomen.

In Chrome raadt ik de tool Postman aan, daar mee kan je snel en duidelijker Post requests testen en geeft iets meer informatie dan de Java error.
https://chrome.google.com/webstore/deta ... oidkmcomcm
click66
Starter
Starter
Berichten: 6
Lid geworden op: 23 apr 2014, 13:49

Hoe kan ik met postman een request zien die ik vanuit men java programma doe dan?
8balljunkie
Pro Member
Pro Member
Berichten: 352
Lid geworden op: 30 mei 2012, 10:31
Uitgedeelde bedankjes: 29 keer
Bedankt: 29 keer

In Postman zet jezelf op POST dan kopieer de inhoud van de string xmldata naar het venster in Postman.
Zorg wel dat je op XML staat.
Dan de URL meegeven en dan op send klikken.

Het kan ook zijn dat Telenet enkele headers verwacht maar ben niet zeker, ken de API niet.
Kan je een link van de documentatie eens posten.
Gebruikersavatar
Sinna
Elite Poster
Elite Poster
Berichten: 2417
Lid geworden op: 14 nov 2008, 08:22
Twitter: KrSi78
Locatie: Brugge
Uitgedeelde bedankjes: 208 keer
Bedankt: 152 keer

Ik krijg een login required voor de kiezen...
Computer(k)nul
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

Een webservice aanroepen is iets meer dan louter een POST te doen.

Trouwens de wsdl van Telenet bevat fouten... maar zoek eens op het forum hier... heb ooit een werkend voorbeeld gepost.
Plaats reactie

Terug naar “Development”