解决方案 »
- 急!!!!!!!!!!请教:安卓创建数据库实例为什么一定要继承SQLiteOpenHelper,并且第一次使用数据库编程,请大侠对这个类解释下
- 如何在Setting的listItem中添加箭头表示又下级内容
- Activity android:launchMode="singleInstance" 与 startActivityForResult
- 新浪微博的开发,如果共享一张图片
- 找不到系统的联系人数据库
- socket必须在客户端断开连接之后,服务器端才能接收到数据
- eclipse中alt +/无法调用android的库,在线等。。。?
- ArrayAdapter的问题,我传进来一个20位的数组 但是显示出来就是40位 很邪门 内有代码 显示的是传进来数组位数的2倍
- ListView中的多选有BUG大家知道吗
- 请问各位大神,3d光线镜面反射需要什么算法,程序怎么写
- 想做个在线升级,前辈们给个思路?
- 如何通过蓝牙打印图片?
下面是调用webservice的代码:
WebServiceUtils.callWebService(server_url, "GetYQSSQYJYInfo2", properties, new WebServiceCallBack() {
//WebService接口返回的数据回调到这个方法中
@Override
public void callBack(SoapObject result) {
if(result != null){
parseSoapObject(result);
}else{
Toast.makeText(ssjy.this, "获取数据错误", Toast.LENGTH_SHORT).show();
}
}
});
public class WebServiceUtils {
public static final String WEB_SERVER_URL = "http://192.168.1.36/website/service.asmx";
// 含有3个线程的线程池
private static final ExecutorService executorService = Executors
.newFixedThreadPool(3);
// 命名空间
private static final String NAMESPACE = "http://tempuri.org/"; /**
*
* @param url
* WebService服务器地址
* @param methodName
* WebService的调用方法名
* @param properties
* WebService的参数
* @param webServiceCallBack
* 回调接口
*/
public static void callWebService(String url, final String methodName,
HashMap<String, String> properties,
final WebServiceCallBack webServiceCallBack) {
// 创建HttpTransportSE对象,传递WebService服务器地址
final HttpTransportSE httpTransportSE = new HttpTransportSE(url,5000);
// 创建SoapObject对象
SoapObject soapObject = new SoapObject(NAMESPACE, methodName); // SoapObject添加参数
if (properties != null) {
for (Iterator<Map.Entry<String, String>> it = properties.entrySet()
.iterator(); it.hasNext();) {
Map.Entry<String, String> entry = it.next();
soapObject.addProperty(entry.getKey(), entry.getValue());
}
} // 实例化SoapSerializationEnvelope,传入WebService的SOAP协议的版本号
final SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
// 设置是否调用的是.Net开发的WebService
soapEnvelope.setOutputSoapObject(soapObject);
soapEnvelope.dotNet = true;
httpTransportSE.debug = true; // 用于子线程与主线程通信的Handler
final Handler mHandler = new Handler() { @Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 将返回值回调到callBack的参数中
webServiceCallBack.callBack((SoapObject) msg.obj);
} }; // 开启线程去访问WebService
executorService.submit(new Runnable() { @Override
public void run() {
SoapObject resultSoapObject = null;
try {
httpTransportSE.call(NAMESPACE + methodName, soapEnvelope);
if (soapEnvelope.getResponse() != null) {
// 获取服务器响应返回的SoapObject
resultSoapObject = (SoapObject) soapEnvelope.bodyIn;
}
} catch (HttpResponseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} finally {
// 将获取的消息利用Handler发送到主线程
mHandler.sendMessage(mHandler.obtainMessage(0,
resultSoapObject));
}
}
});
} /**
*
*
* @author xiaanming
*
*/
public interface WebServiceCallBack {
public void callBack(SoapObject result);
}}
if (soapEnvelope.getResponse() != null)
捕捉到异常会跳到
catch (IOException e)
错误为
java.net.SocketException: sendto failed: ECONNRESET(Connection reset by peer)在网上查是说频繁连接端口被占用,每次要关闭连接
我该怎么做啊