2012-07-12 191 views
0

我有以下的代码来调用网址:http://10.105.0.120/24online/servlet/ClientRegistrationResponse?action=response&phone=919638983856&actioncode=0000产生java.io.IOException:服务器返回的HTTP响应代码:500网址

代码:

StringBuffer request=new StringBuffer(); 
      request.append(xml); 
      URL url = new URL(url); 
      HttpURLConnection obj = null; 
       obj = (HttpURLConnection)url.openConnection(); //create a SSL connection object server-to-server 

       ((URLConnection)obj).setDoInput(true); 
       ((URLConnection)obj).setDoOutput(true); 
       ((URLConnection)obj).setUseCaches(false); 
//    ((URLConnection)obj).setReadTimeout(10); 
       ((URLConnection)obj).setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
       obj.setRequestMethod("POST"); 
       obj.setRequestProperty("charset", "US-ASCII"); 
       //obj.setConnectTimeout(PropertyReader.IN_REQUEST_TIMEOUT); 
       //obj.setReadTimeout(PropertyReader.IN_REQUEST_TIMEOUT); 
       // Here the HTTPS request URL is created 

       DataOutputStream dataoutputstream = new DataOutputStream(((URLConnection)obj).getOutputStream()); 
       dataoutputstream.writeBytes(request.toString()); //request 
       //dataoutputstream.flush(); 
       dataoutputstream.close(); //connection closed 
       BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(((URLConnection)obj).getInputStream())); 
       String res = ""; 

           while ((res = bufferedreader.readLine()) != null) { 

        conresponse += res; 
       } 
       bufferedreader.close(); 

但我得到以下错误:

java.io.IOException: Server returned HTTP response code: 500 for URL: http://10.105.0.120/24online/servlet/ClientRegistrationResponse?action=response&phone=919638983856&actioncode=0000 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313) 
    at cyberoam.corporate.integration.XMLSenderReceiver.sendFileData1(XMLSenderReceiver.java:70) 
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:56) 
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31) 
org.jdom.input.JDOMParseException: Error on line -1: Premature end of file. 
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:504) 
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392) 
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62) 
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31) 
Caused by: org.xml.sax.SAXParseException: Premature end of file. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489) 
    ... 3 more 
Caused by: org.xml.sax.SAXParseException: Premature end of file. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489) 
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392) 
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62) 
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31) 
Caused by: org.xml.sax.SAXParseException: Premature end of file. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) 
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489) 
    at cyberoam.corporate.integration.XMLProcessor.parseXML(XMLProcessor.java:392) 
    at cyberoam.corporate.modes.TopupRequestThread.sendTopupRequest(TopupRequestThread.java:62) 
    at cyberoam.corporate.modes.TopupRequestThread.run(TopupRequestThread.java:31) 
2012-07-12 18:52:49,416 - PIPE_COMM: In Receiving Object for /usr/local/nas/pipes/raam_to_gui_pipe 
******************SMPPThread constructor called***************** 

这个错误的原因是什么?因为当我从浏览器直接调用URL时,它的工作非常完美。

+0

这很好,问题是什么? – biziclop 2012-07-12 13:57:00

+0

对不完整的问题感到抱歉,请检查我编辑的问题 – chetan 2012-07-12 13:59:47

回答

1

有问题吗?

您向服务器发送了错误的请求,并且它正在响应内部服务器错误(代码500)。合乎逻辑的事情是检查你的HTTP服务器日志(它是一个10 * IP地址,所以它对你来说是本地的)。

此外,JDOM异常处于不同的线程或其他东西....在您显示的代码中没有与JDOM相关的代码,异常堆栈跟踪没有以任何方式链接到具有500状态响应的IOException 。或者,您忽略了status-500响应(IOException),然后期望同一线程中的JDOM代码从服务器解析(可能是空的)错误响应(这无疑会以过早结束的方式结束)文件)。

您需要:

  • 检查你的服务器日志
  • 处理所有异常适当
  • 可能添加一些调试代码,使您可以检查您发送到数据从服务器/检索。
相关问题