android 调用C# 中hessian
最近在做一个手机app,需要与后台进行交互。
以前是使用java后台,利用hessian来传输数据,这次想换.net后台,仍使用hessian 。
在使用中还是遇到几个问题:
1.C#使用hessian搭建好后台后,调试能通过,但部署到IIS一直出错
解决:在站点或虚拟目录下右键-->主目录--->配置 插入通配符“.hessian”,"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll".
和java中的拦截器差不多,告诉后台由谁来处理这种后缀的请求。
参考:http://www.cnblogs.com/lxsfg/archive/2008/08/27/1277777.html
2.Android中调用hessian后提示:com.caucho.hessian.client.HessianRuntimeException: java.io.IOException
解决:一开始很奇怪,调用网络接口怎么会返回IO错误,后来仔细看调试信息才发现 android.os.NetworkOnMainThreadException,上网查了下是4.0后不支持在UI中同步调网络请求,需要使用线程来异步操作。当然这种情况也只会在demo中出现,一般都是异步处理网络请求的。
3.最搞笑的问题:
在用异步访问时提示:com.caucho.hessian.client.HessianRuntimeException: java.net.SocketException: failed to connect to /192.168.123.9 (port 81) after 90000ms: isConnected failed: EHOSTUNREACH (No route to host)
解决:开防火墙,开关WIFI,不知道哪个步骤解决的。。。最后就好了。。。。