Как разобрать ответ в файле JSON из запроса SOAP в приложении Android - PullRequest
0 голосов
/ 24 июня 2011

Мой запрос SOAP и ответ SOAP выглядит следующим образом:

Test
To test the operation using the HTTP POST protocol, click the 'Invoke' button.
Parameter   Value
accessCode: xxxxxx
            Invoke     


SOAP 1.1

Ниже приведен пример запроса и ответа SOAP 1.1.Показанные заполнители необходимо заменить фактическими значениями.

POST /UI/WebServices/CalManager.asmx HTTP/1.1
Host: login.nediso.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://nediso.com/add/login"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <add_x002F_login xmlns="http://nediso.com/">
      <accessCode>string</accessCode>
    </add_x002F_login>
  </soap:Body>
</soap:Envelope>

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <add_x002F_loginResponse xmlns="http://nediso.com/">
      <add_x002F_loginResult>string</add_x002F_loginResult>
    </add_x002F_loginResponse>
  </soap:Body>
</soap:Envelope>

Здесь я отправляю запрос SOAP, как указано в приведенном выше формате запроса SOAP, с кодом доступа, пусть это будет, например, xxxxx.Ниже я получаю ответ в виде строки.всякий раз, когда я ввожу код доступа и нажимаю кнопку Invoke чуть выше запроса SOAP, я получаю файл .Json в качестве ответа.Здесь вопрос заключается в том, получаю ли я String в качестве ответа или .Json файл в качестве ответа.Если это .Json файл, как его обработать и разобрать?

1 Ответ

0 голосов
/ 24 июня 2011

Ну, не знаю точно, что вы имеете в виду, но легко разобрать ответ json на ваш запрос.Вы можете использовать библиотеку google-gson из здесь .Добавив библиотеку в свой проект, вы можете сделать что-то вроде:

public static String ParseJSON(String theResponse, String tag){
    try{
          String tempResp = theResponse.toUpperCase();
          String tempTag = tag.toUpperCase();
          JSONObject outer = new JSONObject(tempResp);
          String data = (String)outer.get(tempTag);
          return data;
        }
        catch(JSONException e) {
            Log.e(LOG_TAG, e.toString());
        }
}

Эта функция вернет data tag, переданного в качестве параметра.Так, например:

String response = "Result:OK, Message:HI"; 
String msgData = ParseJSON(response, "Message");
System.out.println(msgData); //this will print "HI"

Райан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...