我有以下代码可以调用URL:http://10.105.0.120/24online/servlet/ClientRegistrationResponse?action=response&phone=919638983856&actioncode=0000
代码:
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时一样,它的工作非常完美。
发布于 2012-07-12 13:59:25
有什么问题吗?
您已经向服务器发送了一个错误的请求,并且它正在响应一个内部服务器错误(代码500)。逻辑上要做的事情是检查您的HTTP服务器日志(它是一个10.* IP地址,所以它是本地的)。
此外,JDOM异常位于不同的线程或其他.您显示的代码中没有JDOM相关代码,异常堆栈跟踪也没有以任何方式链接到具有500状态响应的IOException。或者,您忽略了状态-500响应(IOException),然后期望同一个线程中的JDOM代码解析来自服务器的(可能是空的)错误响应(这无疑会以过早的文件结尾结束)。
你需要:
https://stackoverflow.com/questions/11452967
复制相似问题