2012-07-07 99 views
0

我正在尝试登录到网站,并显示它的源代码使用android模拟器,但我不能让它的工作,但在基于Java的,它的工作。登录并获取源代码

这里是我的代码:

package auth.test; 

import android.app.Activity; 
import android.os.Bundle; 
// used for interacting with user interface 
import android.widget.TextView; 
import android.widget.EditText; 
// used for passing data 
// used for connectivity 
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 

public class AuthActivity extends Activity { 
/** Called when the activity is first created. */ 

//Handler h; 
private static URL URLObj; 
private static URLConnection connect; 
EditText eText; 
TextView tView; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tView=(TextView)findViewById(R.id.textView1); 
    initControls(); 
} 

    public void initControls() 
    { 

     try { 

      URLObj = new URL("http://students.usls.edu.ph"); 
      connect = URLObj.openConnection(); 
      connect.setDoOutput(true); 
     } 
     catch (MalformedURLException ex) { 
      tView.setText("The URL specified was unable to be parsed or uses an invalid protocol. Please try again."); 
      //System.exit(1); 
     } 
     catch (Exception ex) { 
      tView.setText("An exception occurred. " + ex.getMessage()); 
      //System.exit(1); 
     } 


     try { 

      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connect.getOutputStream())); 
      writer.write("username=0920204&password=******"); 
      //writer.close(); 


      BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream())); 

      String lineRead=""; 


      while((lineRead=reader.readLine())!=null) 
      { 
       tView.append(lineRead + "\n"); 
      } 


      reader.close(); 

     } 
     catch (Exception ex) { 
      tView.setText("There was an error reading or writing to the URL: " + ex.getMessage()); 
     } 
    } 
} 

所以,而不是显示主网页的源代码,它显示登录页面的源代码。所以我认为代码的Bufferedwriter部分有问题。

回答

1

首先,您应该隐藏用户名/密码或伪造它们。

URLConnection处理饼干非常糟糕。这就是为什么你只是从登录页面获得结果。 Android自API 1开始内置Apache HttpClient,因此您可以使用它。饼干管理得很好:-)

而且,你正在从服务器得到原始文本,而不是源代码。