Может ли кто-нибудь указать мне учебник или рабочий пример подключения Android к веб-службе php с использованием ksoap2 или чего-то еще?
Как я могу подключить Android к веб-службе php
comment
возможный дубликат веб-сервиса REST и SOAP в android
- person Mark B   schedule 19.01.2012
Ответы (1)
Я использую свой PHP-Webservice следующим образом:
Джава:
// params => "?action=getInfos"
private JSONObject getJSONObject(String params)
{
try
{
String url = path2webservicephp + params;
System.out.println("Call URL: " + url);
HttpGet request = new HttpGet(url);
request.setHeader("Content-Type", "text/xml;charset=UTF-8");
DefaultHttpClient httpclient2 = new DefaultHttpClient();
HttpResponse response = httpclient2.execute(request);
if (response.getStatusLine().getStatusCode() != 200)
throw new ConnectionException("Status Code is " + response.getStatusLine().getStatusCode() + ": " + response.getStatusLine().getReasonPhrase());
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String line = reader.readLine();
MyConstants.RECEIVEDBYTES += line.length();
reader.close();
if ("[]".equals(line))
return null;
return new JSONObject(line);
}
catch (Exception e)
{
LLog.e(Webservice.class, "Exception! params: " + params);
LLog.e(e, Webservice.class);
}
return null;
}
// LLog.e из моего собственного класса. Он регистрируется в Log.e и в файл
PHP:
$array = array('status' => 'ok', 'message' => 'your action was: '.$_GET['action']);
echo json_encode($array);
person
PKeidel
schedule
19.01.2012
это возвращает wsdl, не вызывает метод и возвращает результаты.
- person user1157662; 20.01.2012
Мой веб-сервис делает то, что я написал на PHP, и дает мне ответ за его работу. Я попробовал это с ksoap2, но написать собственный с JSON для меня было проще. (Потому что я ненавижу XML...) И это доставило массу удовольствия в сочетании с большим эффектом обучения.
- person PKeidel; 20.01.2012
чувак, я знаю, что ты прав. но дело в том, что метод вообще не вызывается. для меня ответ представляет собой строку xml, но вместо этого он просто возвращает wsdl, а также обратите внимание, что мой веб-сервис написан с помощью Yii php framework... я даже готов к JSON, если он работает для вызова.
- person user1157662; 20.01.2012
наконец-то получил его
You require TCP MON and port 8080->80 to be mapped and you can see the response private static final String NAMESPACE = "urn:MobileAppControllerwsdl"; private static final String URL = "http://10.0.2.2:8080/eventorbit/eo/mobileapp/mobile?ws=1"; private static final String SOAP_ACTION = "urn:MobileAppControllerwsdl#getQuote"; private static final String METHOD_NAME = "getQuote";
остальное почти то же самое .... без сопоставления портов он зависает во время выполнения
- person user1157662; 22.01.2012