Pagina 1 van 1

Telenet API request fails

Geplaatst: 25 apr 2014, 10:25
door click66
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?

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 10:34
door 8balljunkie
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

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 10:36
door click66
Hoe kan ik met postman een request zien die ik vanuit men java programma doe dan?

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 10:55
door 8balljunkie
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.

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 10:58
door click66

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 15:51
door Sinna
Ik krijg een login required voor de kiezen...

Re: Telenet API request fails

Geplaatst: 25 apr 2014, 20:21
door ubremoved_539
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.