-4

シンプルなログインアプリケーションを開発しています。私の JSON Web サービスはユーザー名を返します。JSON コードの形式は次のとおりです。

[{"demologin":{"username":"demoname","id":100}}]

そして、ここに私のコードがあります:

private class LongRunningGetIO extends AsyncTask <Void, Void, String> {

    protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException {
       InputStream in = entity.getContent();
         StringBuffer out = new StringBuffer();
         int n = 1;
         while (n>0) {
             byte[] b = new byte[4096];
             n =  in.read(b);
             if (n>0) out.append(new String(b, 0, n));
         }
         return out.toString();
    }

    protected String doInBackground(Void... params) {
         HttpClient httpClient = new DefaultHttpClient();
         HttpContext localContext = new BasicHttpContext();

         username=txtUserName.getText().toString();
         password=txtPassword.getText().toString();



         String url="MY URL HERE";
         HttpGet httpGet = new HttpGet(url);

         String text = null;
         String result = null;
         String webusername=null;
         int webuserid;
         ArrayList<String> desc=new ArrayList<String>();

         try {

               HttpResponse response = httpClient.execute(httpGet, localContext);
               HttpEntity entity = response.getEntity();
               text = getASCIIContentFromEntity(entity);



                   JSONArray ja = new JSONArray(text) ;
                   // ITERATE THROUGH AND RETRIEVE CLUB FIELDS
                                int n = ja.length();
                                for (int i = 0; i < n; i++) {
                                    // GET INDIVIDUAL JSON OBJECT FROM JSON ARRAY
                                 JSONObject jo = ja.getJSONObject(i);

                                 webusername= jo.getString("demologin");
                                 webuserid= jo.getInt("id");

                                }
         } catch (Exception e) {



                   e.getLocalizedMessage();
                   }    
         return webusername; 
    }   
    protected void onPostExecute(String results) {
        if (results!=null) {

            String sendusername=results;
            Intent inte=new Intent(Login.this,FrontPage.class);
            inte.putExtra("displayusername", sendusername);
            startActivity(inte);


        }
        else
            Toast.makeText(getApplicationContext(), "Invalid user", Toast.LENGTH_LONG).show();


        }
}

ここでの問題は、ユーザー名を文字列にして Web 経由で渡す方法がわからないことです。これをどのように行うことができるかについて誰にも考えがありますか?

4

1 に答える 1

0

この投稿が役立つと思います。ここでは、wsdl から返された文字列に対して文字列操作が行われます。同じ文字列分割関数を使用して、結果 プロセスを Web サービスによって返された配列に分割できます。

于 2013-02-28T11:29:16.567 に答える