gpt4 book ai didi

android - 如何从android调用ksoap web服务

转载 作者:行者123 更新时间:2023-11-30 02:04:37 25 4
gpt4 key购买 nike

我想在 android studio 中使用 ksoap 库。但我对它的认识还不够。(我总是使用 Volley lib 从 php api 发送/接收并且它工作正常。)

网址: http://sms141.ir/sms141_webservice.asmx

我的功能:

public object[] CheckUsers(string number , string user  , string pass)

SOAP_ACTIONNAMESPACE 变量是否正确?

private static final String SOAP_ACTION = "http://sms141.ir/CheckUsers";
private static final String METHOD_NAME = "CheckUsers";
private static final String NAMESPACE = "http://sms141.ir";
private static final String URL = "http://sms141.ir/sms141_webservice.asmx";


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sms_login);

myAsyncTask myRequest = new myAsyncTask();
myRequest.execute();

}


private class myAsyncTask extends AsyncTask<Void, Void, Void> {


@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// tv.setText(response);
}

@Override
protected void onPreExecute() {
super.onPreExecute();
}

@Override
protected Void doInBackground(Void... arg0) {

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("number", "value");
request.addProperty("user", "value");
request.addProperty("pass", "value");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE(URL);

httpTransport.debug = true;
try {
httpTransport.call(SOAP_ACTION, envelope);
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //send request
SoapObject result = null;
try {
result = (SoapObject)envelope.getResponse();
} catch (SoapFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Log.d("App",""+result.getProperty(1).toString());
String response = result.getProperty(1).toString();


Log.e("result","0"+response);


return null;
}
}

我收到这些错误:

> 06-17 18:32:02.751  11495-11515/com.almas.mehr.sms E/AndroidRuntime﹕
> FATAL EXCEPTION: AsyncTask #1
> java.lang.RuntimeException: An error occured while executing doInBackground()
> at android.os.AsyncTask$3.done(AsyncTask.java:299)
> at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
> at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
> at java.util.concurrent.FutureTask.run(FutureTask.java:239)
> at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
> at java.lang.Thread.run(Thread.java:856)
> Caused by: java.lang.NullPointerException
> at com.almas.mehr.sms.Login$myAsyncTask.doInBackground(Login.java:211)
> at com.almas.mehr.sms.Login$myAsyncTask.doInBackground(Login.java:166)
> at android.os.AsyncTask$2.call(AsyncTask.java:287)
> at java.util.concurrent.FutureTask.run(FutureTask.java:234)
>             at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
>             at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
>             at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
>             at java.lang.Thread.run(Thread.java:856)

最佳答案

根据我对你问题的理解,你只需要知道如何使用 KSOAP2 库和 android 来与服务器通信。

这是一个链接,您可以通过该链接获得实现

http://karanbalkar.com/2014/03/tutorial-78-using-ksoap2-in-android/

How to use KSoap 2 in android

关于android - 如何从android调用ksoap web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30894021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com