开发者

User authentication web service code not running from Android app

I am facing a problem in calling my web service for user authentication from within my Android app. When I enter the user name and password that I know are right, it is giving me a weird xml error on the emulator screen

Here is my Android code :

           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 pa开发者_如何学编程ssword
     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();
  }
}
  }

Here is the pic of my output on emulator: http://www.flickr.com/photos/66352826@N07/6041731494/ Here is logcat : http://pastebin.com/YmH0h6SF

Please someone help me


I am no .net expert, but from the logcat logs it seems that something is wrong on the server side. Here is a link to a similar problem (suggesting that you attach your debbuger on the server side, to get more details): http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/fdb3c1f0-9e23-493b-ab6a-1c7e69c7305f/

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜