1

私は、ログインプロセスがdotnetにあるWebサービスを介して行われるオンライン投票用のアプリを開発しています。Webサービス部分は準備ができて機能していますが、どのような応答が返されるかを確認したいと思います。

URL url=new URL("http://www.example.com/login");
            HttpURLConnection urlconnection=(HttpURLConnection)url.openConnection();
            String requestXML="<data><username>sachin.t@gmail.com</username><password>sachin</password></data>";
            urlconnection.setRequestMethod("POST");
            urlconnection.setDoInput(true);
            urlconnection.setDoOutput(true);
            urlconnection.setRequestProperty("Accept-Charset", "UTF-8");
            urlconnection.setRequestProperty("Content-type", "application/xml");
            urlconnection.setRequestProperty("Content-Length", ""+Integer.toString(requestXML.length()));

            //Send request
            DataOutputStream dout=new DataOutputStream(urlconnection.getOutputStream());
            dout.writeBytes(requestXML);
            dout.flush();
            dout.close();
            if(urlconnection.getResponseCode()==HttpURLConnection.HTTP_OK)
            {
                InputStream is=urlconnection.getInputStream();
                BufferedReader breader=new BufferedReader(new InputStreamReader(is));
                String temp;
                String resp="";
                while((temp=breader.readLine())!=null)
                {
                    resp+=temp;
                }



                Document respdoc=null;
                DocumentBuilderFactory docbuilderfactory=DocumentBuilderFactory.newInstance();
                DocumentBuilder docbuilder=docbuilderfactory.newDocumentBuilder();
                InputSource isource=new InputSource();
                isource.setCharacterStream(new StringReader(resp));
                respdoc=docbuilder.parse(isource);

ネットからこれを取得しましたが、以下に示す応答を解析したいと思います。

<login>
    <login_validation>"1/2/3"</login_validation> 
    ( 1-invalid username,2-successfull and 3- already voted)

    <voter_id>" 0/voter_id "</voter_id> 
    (if sucessfull then only voter_id else value will return 0)
</login>

なにか提案を ?

前もって感謝します。

4

1 に答える 1

1

Xpath(http://developer.android.com/reference/javax/xml/xpath/package-summary.html)を使用できます。私があなたを正しく得た場合、あなたの応答は「respdoc」にあります。login_validationノードを選択するには、次の手順を実行する必要があります。

XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/login/login_validation";
Node loginValidation = (Node) xpath.evaluate(expression, respdoc, XPathConstants.NODE);

voter_idノードを選択するには:

expression = "/login/voter_id";
Node voterId = (Node) xpath.evaluate(expression, respdoc, XPathConstants.NODE);

その後、loginValidationとvoterIdを使用して好きなことを行うことができます。

于 2013-01-26T19:10:23.970 に答える