android如何连接远程的数据库? 有代码吗?请帮忙?我要登录到远程服务器上, 提取用户信息进行验证
解决方案 »
- 求助 Android receiver http请求问题
- android GridView绑定显示SD卡的图片,怎样使显示的顺序按编号显示呢
- 如何通过蓝牙实现文件传送?
- Ophone上如何建立自定义分辨率的模拟器
- android 网络通信 线程编程问题
- 求指导 关于Android APP开发的问题
- 自定义的VIEWGROUP要怎么添加子view?是不是要重写addView?
- android图片太大无法分享
- 安卓里连接SQL数据库超时问题,找高手!!!
- ListView在Graphical Layout可以显示,运行在手机上显示不了
- 怎么获取后台运行的Service实例?
- 不会刷机怎能学会安卓开发!?
大多是用“肥皂”技术,不过也有好的方案用WSDL(我想java平台下)自动生成webService代理类,不过我遇到了问题就是加载第三方包时出现了冲突;可能需android 平台下的软件去生成代理类
去网上下载这个jar包:ksoap2-android-assembly-2.4-jar-with-dependencies.jar
使用方法如下:public class TestWebService extends Activity {
private static String NameSpace="http://tempuri.org/";
private static String u="http://10.8.8.70:808";//请更换成你要访问的服务器地址
private static String webService="/webService/WebService.asmx";//webService目录
private static String MethodName="HelloWorld2";//要调用的webService方法
private static String soapAction=NameSpace+MethodName;
private static String url=u+webService;
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.tv);
tv.setText(ws());
}
//webService操作要访问网络,所以最好是使用线程来做,这里只是示例,所以就不考虑了
private String ws(){
String result="";
try{
SoapObject request=new SoapObject(NameSpace,MethodName);//NameSpace
//webService方法中的参数,这个根据你的webservice来,可以没有。
//但请注意,参数名称和参数类型客户端和服务端一定要一致,否则将可能获取不到你想要的
//request.addProperty("x",5);
//request.addProperty("y", 6);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE ht=new HttpTransportSE(url);
ht.call(soapAction, envelope);
if(envelope.getResponse()!=null){
SoapPrimitive response=(SoapPrimitive)envelope.getResponse();
result=response.toString();//这里获得了webService的返回值
}
}catch(Exception e){
result=e.getMessage();
}
return result;
}
}
谢谢你的回帖, 能帮我解释下,这几个变量要怎样赋值吗?
private static String NameSpace="http://tempuri.org/"; 这个变量是什么意思呢?
private static String webService="/webService/WebService.asmx";//WebService.asmx要自己写吗?
private static String MethodName="HelloWorld2";//这个方法是写在WebService.asmx的吗?
还有就是,我要把在客户端输入的 username 发过去,去找相应的密码,这个参数要怎么传进去?
答:这个不用管,照写就对了 private static String webService="/webService/WebService.asmx";//WebService.asmx要自己写吗?
答:这个可以是自己写的,也可以是别人提供的,但是地址一定要正确,就是这个地址你能够在浏览器里面正常打开这个界面 private static String MethodName="HelloWorld2";//这个方法是写在WebService.asmx的吗?
答:这个方法一定是要写在WebService.asmx里面的,否则你调用什么呀?还有就是,我要把在客户端输入的 username 发过去,去找相应的密码,这个参数要怎么传进去?
答:参考上面的代码,request.addProperty("x",5);改成:request.addProperty("username",你要传的参数);
if(envelope.getResponse()!=null){
SoapPrimitive response=(SoapPrimitive)envelope.getResponse();
result=response.toString();//这里获得了webService的返回值
}
注意参数类型和形参名称一定要两边一致
好的 可以给我一个webService.asmx的代码做参考吗? 我可以模仿这 写我要实现的方法
如果你调用的是Java提供的WS接口,比如用XFire实现的WS,那么,namespace是自己定义的
能帮我看下这段代码,
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.abc.com/selectusr.php");
httppost.setEntity(new UrlEncodedFormEntity(nameP));
HttpResponse response = httpclient.execute(httppost); 执行到这里的时候就抛出异常了, 为什么?
[WebMethod]
public string getPassword(string username)
{
....
return password;
}
webService.asmx里面的代码是这样写的吗? 用Java代码实现吗?
ServerIP ,Port.