Author Topic: Getting SocketException: Connection Reset when accessing /api/LiveData.xml  (Read 3540 times)

ricoued

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
Hi All,

I'm trying to access the live data from my TED5000, but I consistently get a "connection reset".
Here is the Java code I'm using. It works fine to get other URLs but not on the TED?


         urlConnection = url.openConnection();
         is = urlConnection.getInputStream();

         BufferedReader r = new BufferedReader(new InputStreamReader(is));
         StringBuffer buf = new StringBuffer();
         String line;
         while ((line = r.readLine()) != null) {
            buf.append(line);
         }
         is.close();


Help!

Thanks,
Eric

TedDev

  • TED Software Developent
  • Administrator
  • Full Member
  • *****
  • Posts: 158
  • Karma: +0/-0
Re: Getting SocketException: Connection Reset when accessing /api/LiveData.xml
« Reply #1 on: November 15, 2011, 11:26:27 PM »
not sure what is going on there other than the xml file may not end with CRLF's (e.g. if it ends w/ linespace) so your r.readLine may be hanging waiting for data that is terminated before a CRLF is sent. I generally don't use readLine approach (I lean towards pulling all bytes from the stream and casting it).

However, for our current java apps, we are using Apache Commons HTTPClient to grab the data. You may want to look into that for your app as it provides many shortcuts to do exactly what you are trying to do.

String response = "";
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try{
       int statusCode = client.executeMethod(method);
       response = method.getResponseBodyAsString();
       System.out.println(response);
        method.releaseConnection();
} catch(IOException e) {
        e.printStackTrace(System.err);
}


« Last Edit: November 15, 2011, 11:44:56 PM by TedDev »