我正在开发一个类似于表单的Android应用程序。它目前的工作原理是用户输入的数据被解析为json到php脚本并存储在数据库中。我听说这不是最好的方法,而且我需要使用webservice / web API代替与服务器连接,因为这样更安全。我的问题是,我真的需要使用webservice / API来发送数据吗?如果我这样做,你可以引导我到一个我可以学习如何创建它的资源吗?
答案 0 :(得分:0)
谁说你的网络服务不能用PHP编写? Web服务和读取JSON数据的普通PHP页面之间没有太大区别。只需谷歌浏览类似于" php json网络服务",您就可以获得大量信息。
答案 1 :(得分:0)
如果您有肥皂服务,可以使用ksoap访问它。
以下是示例:
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class ChartService {
private static final String GET_USER_ACTION = "http://service.chartengine.core/getUsersFullNameBasedOnSession";
private static final String GET_USER_METHOD_NAME = "getUsersFullNameBasedOnSession";
private static final String NAMESPACE = "http://service.chartengine.core";
private static final String URL = "http://10.10.10.22:8080/axis2/services/ChartService?wsdl";
private static String name = "";
public static String getUserFullName(){
if(ECSSecurityService.sessionID.isEmpty())
return "";
SoapObject request = new SoapObject(NAMESPACE, GET_USER_METHOD_NAME);
request.addProperty("sessionIDArg", SecurityService.sessionID);
final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
final HttpTransportSE ht = new HttpTransportSE(URL);
new Thread(new Runnable() {
@Override
public void run() {
try {
ht.call(GET_USER_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
name = response.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
int countWait = 5;
while (name.isEmpty() && countWait > 0){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
countWait--;
}
return name;
}
}
此通话有5秒超时。希望它有所帮助。