在android项目中,可以使用ksoap访问WebService。但是HttpTransportSE.java类中,没有支持设置连接超时的方法,这样在特定的情况下会很不方便。查了很多资料也没什么很好的方法,最后决定自己改源码了。
首先,在ServiceConnection.java接口中,新增一个方法:
public void setConnectTimeOut(int timeout);
然后在ServiceConnectionSE.java类中,实现setConnectTimeOut(int timeout)方法:
public void setConnectTimeOut(int timeout) {
connection.setConnectTimeout(timeout);
}
实际上connection就是java.net.HttpURLConnection。
在HttpTransportSE类中新增了一个构造方法
public HttpTransportSE(String url, int timeout) throws IOException {
super(url);
connection = getServiceConnection();
connection.setConnectTimeOut(timeout);
}
1 楼
windloverain
2011-02-14
2 楼
snowstone
2011-06-06
你好,想请问你一个问题.
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
3 楼
sparrow82
2011-06-17
snowstone 写道
你好,想请问你一个问题.
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
不好意思,没有遇到过。现在基本不用webservice了。全用Json了。效率高。
4 楼
snowstone
2011-08-11
sparrow82 写道
snowstone 写道
你好,想请问你一个问题.
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
最近一个项目使用到android开发一个应用,该应用需要与.net开发的WebService进行交互,然而在交互过程中,经常遇到一个问题,在Google、Baidu还有各技术论坛找了很久,可是一直找不到解决的办法.只知道是某种可能性引起的.
具体的异常是在 HttpTransportSE.call(String soapAction, SoapEnvelope envelope) throws IOException,XmlPullParserException)时,
抛出了XmlPullParserException异常。(注明:调用webservice的写法都是正确的,只要不连续调用webservice是不会出现这个情况的)
一般情况下是不会产生的,只有在连续访问WebService时,或网络不流畅的情况下亦或者不同的手机类型中抛出该异常.
具体的日志信息如下:
Issue 35:
unexpected type (position:END_DOCUMENT null@1:0 in java.io.InputStreamReader@43bed1d8)
我猜想是,客户端频繁呼叫webservice,导致产生连接错误,因此Ksoap在解析XML时产生了异常。
现在我在连续的调用websercie用流程中的每一个方法前加上了Thread.sleep(int time)将线程停止一段时间后,再访问,情况虽然有好转,但偶尔还是会抛出该异常。
请问,你遇到过类似的问题没有?可有什么好的解决办法?
不好意思,没有遇到过。现在基本不用webservice了。全用Json了。效率高。
请问一下您现在使用的JSON,能告诉我一下思路吗?webservice端需要改的东西多吗?android 客户端,是否自己重新的连接的方法?
5 楼
liuqf
2011-10-20
试用过了,不错!
6 楼
sdgszy2005
2011-12-26
非常感谢!
7 楼
hejian_986
2012-01-04
你好,我这边的源码无法编译,会报很多编译错误,很多类都找不到哦。
不知道你是怎么编译的啊?
不知道你是怎么编译的啊?