2011-08-14 30 views
0

我面臨從我的Android應用程序調用我的Web服務進行用戶驗證的問題。當我輸入用戶名和密碼,我知道是正確的,這是給我的模擬器的屏幕用戶驗證網絡服務代碼沒有從Android應用程序運行

這裏的一個奇怪的XML錯誤是我的Android代碼:

  package com.demo; 
      import android.app.Activity; 
      import android.os.Bundle; 
      import java.io.BufferedReader; 
      import java.io.IOException; 
      import java.io.InputStream; 
      import java.io.InputStreamReader; 
      import java.util.ArrayList; 
      import java.util.List; 

      import org.apache.http.HttpResponse; 
      import org.apache.http.NameValuePair; 
      import org.apache.http.client.ClientProtocolException; 
      import org.apache.http.client.HttpClient; 
      import org.apache.http.client.entity.UrlEncodedFormEntity; 
      import org.apache.http.client.methods.HttpPost; 
      import org.apache.http.impl.client.DefaultHttpClient; 
      import org.apache.http.message.BasicNameValuePair; 

      //import android.app.Activity; 
      //import android.os.Bundle; 
      import android.util.Log; 
      import android.view.View; 
      import android.view.View.OnClickListener; 
      import android.widget.Button; 
      import android.widget.EditText; 
      import android.widget.TextView; 

      public class AndroidLogin extends Activity implements OnClickListener { 
      /** Called when the activity is first created. */ 
      Button ok,back,exit; 
      TextView result; 
      @Override 
       public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ok =(Button)findViewById(R.id.btn_login); 
      ok.setOnClickListener(this); 

      result = (TextView)findViewById(R.id.lbl_result); 

     } 

      public void postLoginData() { 
      // Create a new HttpClient and Post Header 
      HttpClient httpclient = new DefaultHttpClient(); 


     HttpPost httppost = new HttpPost("http://10.0.2.2/testlogin/Service1.asmx"); 

      try { 
     // Add user name and password 
    EditText uname = (EditText)findViewById(R.id.txt_username); 
    String username = uname.getText().toString(); 

    EditText pword = (EditText)findViewById(R.id.txt_password); 
    String password = pword.getText().toString(); 

     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("username", username)); 
     nameValuePairs.add(new BasicNameValuePair("password", password)); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     Log.w("demo", "Execute HTTP Post Request"); 
     HttpResponse response = httpclient.execute(httppost); 

     String str = inputStreamToString(response.getEntity().getContent()).toString(); 
     Log.w("demo", str); 

     if(str.toString().equalsIgnoreCase("true")) 
     { 
     Log.w("demo", "TRUE"); 
     result.setText("Login successful"); 
     }else 
     { 
     Log.w("demo", "FALSE"); 
     result.setText(str);    
     } 

    } catch (ClientProtocolException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
} 

     private StringBuilder inputStreamToString(InputStream is) { 
     String line = ""; 
     StringBuilder total = new StringBuilder(); 
// Wrap a BufferedReader around the InputStream 
     BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
// Read response until the end 
     try { 
      while ((line = rd.readLine()) != null) { 
      total.append(line); 
    } 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
// Return full string 
     return total; 
     } 

@Override 
public void onClick(View view) { 
    if(view == ok){ 
    postLoginData(); 
    } 
} 
    } 

這裏是我的輸出的PIC在模擬器:http://www.flickr.com/photos/[email protected]/6041731494/ 這裏是logcat的:http://pastebin.com/YmH0h6SF

請人幫我

+0

通讀由服務返回的異常。我不能這樣做,因爲在你提供的屏幕截圖中,它被切斷了。 – pkk

+0

@pkk:即使我不能查看完整的東西..u可以檢查我的logcat如果你想...是否有任何方法來增加emualator屏幕的大小,所以我可以看到隱藏的東西 –

+0

使用logcat,以日誌該消息,並編輯您的帖子並將其添加到那裏:Log.d(「tag」,str);在Log.w附近(「demo」,「FALSE」); – pkk

回答

相關問題