安卓新手求助一段代码的写法。android 调用 webservice 方面的。
背景是想弄一个安卓小程序,与 SQL Server数据库有些操作,但中间打算用 webservice 来做(不知道大家平时怎么来连接数据库,有好的方式还望能细细告知,谢谢)。参考了网上大量的文章,无奈感觉始终有些代码没法写出来,毕竟新手,希望大家能指点一二。
有些环境设置我就直接说了。
开发环境是安卓 7.1.1
ksoap2-android-assembly-3.1.1-jar-with-dependencies.jar 已经放在 libs,并用命令
api files('libs/ksoap2-android-assembly-3.1.1-jar-with-dependencies')编译通过,
...
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
....正常,AS不报错。
我看最新的有个
ksoap2-android-assembly-3.6.4-jar-with-dependencies ,我也用过这个版本,但没有成功。
<uses-permission android:name="android.permission.INTERNET"/>权限已加。
--主要想请大家帮忙看下代码(我的想法是通过调用 ws, 也就是简单的两个数字求和,然后在画面的 textview中显示这个值就可以了)
MainActivity.java
--
public class MainActivity extends AppCompatActivity {
private TextView tv_result;
private String result;
private static final String AddressnameSpace = "http://tempuri.org/";
private static final String Weatherurl = "http://10.100.25.42:8081/WebServiceDemo.asmx";
private static final String Weathermethod = "add";
private static final String WeathersoapAction = "http://tempuri.org/add";
@Override
protected void onCreate(Bundle savedInstanceState) {
getSum();
tv_result.setText(result);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//目前难在这里了,这步改怎么去写,把一个webservice的结果值显示到文本中
//看有些文章需要写成异步执行那种方式来做,这个怎么来写?
//目前运行安卓模拟器报错,程序 stopped 停止运行...
}
public void getSum()
{
result = "";
SoapObject soapObject = new SoapObject(AddressnameSpace, Weathermethod);
soapObject.addProperty("a", "1000");
soapObject.addProperty("b", "2000");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
//这里有些疑问,有的用 ver11,有的用 v12,而且好像都可以通过,怎么来判断那个 ver?
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE httpTransportSE = new HttpTransportSE(Weatherurl);
//--
try {
httpTransportSE.call(WeathersoapAction, envelope);
//
} catch (Exception e) {
e.printStackTrace();//
}
//--
SoapObject object = (SoapObject) envelope.bodyIn;
result = object.getProperty(0).toString();
//--
}
}
还望大家能稍微细细指点一下哈,很多还不是很懂,谢谢了。