使用AndroidStudio开发安卓部分代码
1.直接贴安卓代码部分(省略布局文件部分,因为就是只有一个Button按钮部分)
通过webservice请求,但是前提是让电脑和手机处于同一局域网下,并且开启电脑端的tomcat服务器
package com.softking.myapplication.activity;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.softking.myapplication.R;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
public class WebServiceActivity extends AppCompatActivity implements Handler.Callback{
String out="";
private Button mBtn;
public static final int ONE = 0;
private Handler mHandler=new Handler(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_service);
}
public void getData(View view) {
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
try {
String serviceUrl="http://192.168.43.196:9999/axis2/services/HelloWorld";
String nameSpace="http://webtoapp.soft.com";
String methodName="sayHello";
HttpTransportSE transport=new HttpTransportSE(serviceUrl,5000);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
SoapObject rpc = new SoapObject(nameSpace, methodName);
Log.i("lf", "------------------"+envelope);
envelope.bodyOut = rpc;
transport.debug=true;
transport.call(nameSpace+"/"+methodName, envelope);
SoapObject object = (SoapObject) envelope.bodyIn;
Log.i("lf", object.toString());
out = object.getProperty(0).toString();
Log.i("lf","out--->" + out);
Message msg = Message.obtain();
msg.obj="网络请求过来的字符串";
msg.what=ONE;
mHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
});
thread.start();
}
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ONE:
//吐司属于更新UI的操作,所有更新UI的操作都要放在主线程里面进行
Toast.makeText(this, out, Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return false;
}
}
2.打印log,服务端请求回来的json字符串