别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述Android作为CXF客户端调用服务端。相关的知识,希望能为你提供帮助。
1 加载jar
下载jar包,放在libs下
文章图片
通过Project Structure添加jar依赖
文章图片
成功后就会在build.gradle下添加
文章图片
代码
final static String SERVICE_NS = "http://ws.service.mService.et.cn/";
final static String SERVICE_URL = "http://192.168.9.59:8080/DSer/service/SysService?WSDL";
private EditText txt1;
private EditText txt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//注意下面两行
StrictMode.ThreadPolicy policy= new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
setContentView(R.layout.activity_cxf);
Button button = findViewById(R.id.cxf_button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Toast.makeText(CxfActivity.this,"ceshi",Toast.LENGTH_LONG).show();
getCxf();
}
});
txt1 = findViewById(R.id.cxf_EditText1);
txt2 = findViewById(R.id.cxf_EditText2);
}public void getCxf() {
//调用的方法
String methodName = "getEtUser";
//创建httpTransportSE传输对象
HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
ht.debug = true;
//使用soap1.1协议创建Envelop对象
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//实例化SoapObject对象
SoapObject request = new SoapObject(SERVICE_NS, methodName);
/**
* 设置参数,参数名不一定需要跟调用的服务器端的参数名相同,只需要对应的顺序相同即可
* */
request.addProperty("userName", "000");
//将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
envelope.bodyOut = request;
try{
//调用webService
ht.call(null, envelope);
//txt1.setText("看看"+envelope.getResponse());
if(envelope.getResponse() != null){
txt2.setText("有返回");
SoapObject result = (SoapObject) envelope.bodyIn;
SoapObject soap = (SoapObject) result.getProperty(0);
//这个例子是返回一个对象。
String name =soap.getProperty("name").toString();
String userName =soap.getProperty("userName").toString();
String department =soap.getProperty("department").toString();
txt1.setText("返回值 = "+ name+ " "+userName + " " +department);
}else{
txt2.setText("无返回");
}
}catch (Exception e) {
e.printStackTrace();
}
}
androidManifest.xml
【Android作为CXF客户端调用服务端。】AndroidManifest.xml下添加
<
uses-permission android:name="android.permission.INTERNET" />
推荐阅读
- Android——gradle找不到的坑
- 交叉编译-如何编译Android平台的可执行程序
- QT-Deploying a Qt5 Application Linux
- 新东方APP技术架构演进, 分布式系统架构经验分享
- 安卓7.0及以上版本抓包https失败解决方法
- PowerApps Label 换行
- android学习整理
- PowerApps 添加圆形图片
- Jenkins+Gradle实现Android移动端自动打包+生成apk二维码