我正在开发一个Android应用程序,它有点像一个表单 . 它目前的工作原理是用户输入的数据被解析为json到php脚本并存储在数据库中 . 我听说这不是最好的方法,而且我需要使用webservice / web API代替与服务器连接,因为这样更安全 . 我的问题是,我真的需要使用webservice / API来发送数据吗?如果我这样做,你可以指导我到一个我可以学习如何创建它的资源吗?
谁说你的网络服务不能用PHP编写? Web服务和读取JSON数据的普通PHP页面之间没有太大区别 . 只是谷歌的“PHP json网络服务”,你会得到大量的信息 .
如果您有肥皂服务,可以使用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秒超时 . 希望能帮助到你 .
2 回答
谁说你的网络服务不能用PHP编写? Web服务和读取JSON数据的普通PHP页面之间没有太大区别 . 只是谷歌的“PHP json网络服务”,你会得到大量的信息 .
如果您有肥皂服务,可以使用ksoap访问它 .
这是一个例子:
此呼叫有5秒超时 . 希望能帮助到你 .