2017-09-30 2 views
0

活性アンドロイドログイン使用jsoup

public class LoginActivity extends AppCompatActivity { 
    String url = "http://aluno.cefsa.edu.br/Login/Login"; 
    ProgressDialog mProgressDialog; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    Button btn_login = (Button) findViewById(R.id.btn_login); 

    btn_login.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      new Title().execute(); 
     } 
    }); 
} 

private class Title extends AsyncTask<Void, Void, Void> 
{ 
    String title; 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     mProgressDialog = new ProgressDialog(LoginActivity.this); 
     mProgressDialog.setTitle("Portal CEFSA"); 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     mProgressDialog.show(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 

     try { 
      org.jsoup.Connection.Response res = Jsoup.connect("aluno.cefsa.edu.br/login") 
        .followRedirects(true) 
        .method(org.jsoup.Connection.Method.GET) 
        .execute(); 

      TextView txt_senha = (TextView) findViewById(R.id.txt_senha); 
      TextView txt_ra = (TextView) findViewById(R.id.txt_ra); 


      String usuario = txt_ra.toString(); 
      String senha = txt_senha.toString(); 

      Document document = (Document) Jsoup.connect(url) 
        .followRedirects(true) 
        .cookies(res.cookies()) 
        .method(org.jsoup.Connection.Method.POST) 
        .data("Usuario", usuario.trim()) 
        .data("Senha", senha.trim()) 
        .data("go", "") 
        .execute(); 

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

     /* 
     try { 
      // Connect to the web site 
      Document document = Jsoup.connect(url).get(); 
      // Get the html document title 
      title = document.title(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     */ 
     return null; 
    } 
    @Override 
    protected void onPostExecute(Void result) { 



     // Set title into TextView 
     TextView txt_teste = (TextView) findViewById(R.id.txt_teste); 
     txt_teste.setText(title); 
     mProgressDialog.dismiss(); 
    } 
} 

}

XML

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@android:color/white" 
tools:context="com.destudios.tmedias.LoginActivity" 
tools:layout_editor_absoluteX="0dp" 
tools:layout_editor_absoluteY="81dp"> 

<ImageView 
    android:id="@+id/img_logo" 
    android:layout_width="95dp" 
    android:layout_height="73dp" 
    android:contentDescription="@string/logo_description" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintHorizontal_bias="0.501" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="@+id/guideline" 
    app:srcCompat="@mipmap/ic_launcher_round" /> 

<AutoCompleteTextView 
    android:id="@+id/autoCompleteTextView" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="32dp" 
    android:inputType="number" 
    app:layout_constraintEnd_toStartOf="@+id/guideline3" 
    app:layout_constraintStart_toStartOf="@+id/editText" 
    app:layout_constraintTop_toBottomOf="@+id/img_logo" /> 

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="25dp" 
    android:layout_marginStart="8dp" 
    android:paddingRight="5dp" 
    android:text="RA:" 
    android:textColor="@android:color/black" 
    android:textSize="18sp" 
    app:layout_constraintBaseline_toBaselineOf="@+id/autoCompleteTextView" 
    app:layout_constraintEnd_toStartOf="@+id/editText" 
    app:layout_constraintStart_toStartOf="@+id/textView2" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginStart="8dp" 
    android:paddingRight="5dp" 
    android:text="Senha:" 
    android:textColor="@android:color/black" 
    android:textSize="18sp" 
    app:layout_constraintBaseline_toBaselineOf="@+id/editText" 
    app:layout_constraintStart_toStartOf="@+id/guideline2" /> 

<EditText 
    android:id="@+id/editText" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="32dp" 
    android:ems="10" 
    android:inputType="textPassword" 
    app:layout_constraintEnd_toStartOf="@+id/guideline3" 
    app:layout_constraintStart_toEndOf="@+id/textView2" 
    app:layout_constraintTop_toBottomOf="@+id/autoCompleteTextView" /> 

<Button 
    android:id="@+id/btn_login" 
    style="@style/Widget.AppCompat.Button.Colored" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="50dp" 
    android:text="Login" 
    android:textColor="@android:color/black" 
    app:layout_constraintEnd_toStartOf="@+id/guideline3" 
    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toEndOf="@+id/guideline2" 
    app:layout_constraintTop_toBottomOf="@+id/editText" /> 

<android.support.constraint.Guideline 
    android:id="@+id/guideline" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    app:layout_constraintGuide_percent="0.1" /> 

<android.support.constraint.Guideline 
    android:id="@+id/guideline2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="0.04" /> 

<android.support.constraint.Guideline 
    android:id="@+id/guideline3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="0.9609375" /> 

<TextView 
    android:id="@+id/txt_teste" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginEnd="8dp" 
    android:layout_marginStart="8dp" 
    android:layout_marginTop="20dp" 
    android:text="TextView" 
    app:layout_constraintEnd_toStartOf="@+id/guideline3" 
    app:layout_constraintStart_toStartOf="@+id/guideline2" 
    app:layout_constraintTop_toBottomOf="@+id/btn_login" /> 

</android.support.constraint.ConstraintLayout> 

Logcat

10/02 12:34:14: Launching app 
$ adb install-multiple -r -t C:\Users\fabio\Desktop\Curso android 
arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_2.apk 
C:\Users\fabio\Desktop\Curso android 
arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_9.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_3.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_4.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\dep\dependencies.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_5.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_0.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_1.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_7.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_6.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\intermediates\split-apk\debug\slices\slice_8.apk 
C:\Users\fabio\Desktop\Curso android arquivos\TMedias\app\build\outputs\apk\debug\app-debug.apk 
Split APKs installed 
$ adb shell am start -n "com.destudios.tmedias/com.destudios.tmedias.LoginActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
Client not ready yet..Connected to process 2855 on device emulator-5554 
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page. 
W/System: ClassLoader referenced unknown path: /data/app/com.destudios.tmedias-1/lib/x86 
I/InstantRun: starting instant run server: is main process 
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 
I/OpenGLRenderer: Initialized EGL, version 1.4 
D/OpenGLRenderer: Swap behavior 1 
W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 
D/OpenGLRenderer: Swap behavior 0 
D/EGL_emulation: eglCreateContext: 0xa64f3320: maj 2 min 0 rcv 2 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
W/IInputConnectionWrapper: finishComposingText on inactive InputConnection 
I/art: Do partial code cache collection, code=27KB, data=31KB 
I/art: After code cache collection, code=27KB, data=31KB 
I/art: Increasing code cache capacity to 128KB 
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
       Process: com.destudios.tmedias, PID: 2855 
       java.lang.RuntimeException: An error occurred while executing doInBackground() 
        at android.os.AsyncTask$3.done(AsyncTask.java:325) 
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
        at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 
       Caused by: java.lang.IllegalArgumentException: Malformed URL: aluno.cefsa.edu.br/login 
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:101) 
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:43) 
        at org.jsoup.Jsoup.connect(Jsoup.java:73) 
        at com.destudios.tmedias.LoginActivity$Title.doInBackground(LoginActivity.java:51) 
        at com.destudios.tmedias.LoginActivity$Title.doInBackground(LoginActivity.java:34) 
        at android.os.AsyncTask$2.call(AsyncTask.java:305) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)  
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  
        at java.lang.Thread.run(Thread.java:761)  
       Caused by: java.net.MalformedURLException: no protocol: aluno.cefsa.edu.br/login 
        at java.net.URL.<init>(URL.java:589) 
        at java.net.URL.<init>(URL.java:486) 
        at java.net.URL.<init>(URL.java:435) 
        at org.jsoup.helper.HttpConnection.url(HttpConnection.java:99) 
        at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:43)  
        at org.jsoup.Jsoup.connect(Jsoup.java:73)  
        at com.destudios.tmedias.LoginActivity$Title.doInBackground(LoginActivity.java:51)  
        at com.destudios.tmedias.LoginActivity$Title.doInBackground(LoginActivity.java:34)  
        at android.os.AsyncTask$2.call(AsyncTask.java:305)  
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)  
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)  
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  
        at java.lang.Thread.run(Thread.java:761)  
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 

      [ 10-02 15:34:47.296 1647: 3330 D/   ] 
      HostConnection::get() New Host Connection established 0x9a3b0780, tid 3330 


      [ 10-02 15:34:47.296 1647: 3330 W/   ] 
      Unrecognized GLES max version string in extensions: ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
D/OpenGLRenderer: endAllActiveAnimators on 0x98fa7f00 (InsetDrawable) with handle 0x98f0be30 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
D/EGL_emulation: eglMakeCurrent: 0xa64f3320: ver 2 0 (tinfo 0xa649d870) 
E/WindowManager: android.view.WindowLeaked: Activity com.destudios.tmedias.LoginActivity has leaked window [email protected][Portal CEFSA] that was originally added here 
       at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418) 
       at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331) 
       at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93) 
       at android.app.Dialog.show(Dialog.java:322) 
       at com.destudios.tmedias.LoginActivity$Title.onPreExecute(LoginActivity.java:44) 
       at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:620) 
       at android.os.AsyncTask.execute(AsyncTask.java:567) 
       at com.destudios.tmedias.LoginActivity$1.onClick(LoginActivity.java:29) 
       at android.view.View.performClick(View.java:5637) 
       at android.view.View$PerformClick.run(View.java:22429) 
       at android.os.Handler.handleCallback(Handler.java:751) 
       at android.os.Handler.dispatchMessage(Handler.java:95) 
       at android.os.Looper.loop(Looper.java:154) 
       at android.app.ActivityThread.main(ActivityThread.java:6119) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
       at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
Application terminated. 

私はjsoup、例およびすべてについて多くのことを研究してきたが、私はこのsiteにログインすることはできません。

私はログイン画面とアプリを作成しましたが、私はそれをクリックすると、私はそれが要求を送信し、サイトに自分のアプリからの投稿を行うと、それは

リダイレクトされる場所にページを取得する方法がわかりませんポストによる「aluno.cefsa.edu.br/Login/Loginは」

誰かが私はサイト

+0

あなたのコードを教えてください。 – TDG

+0

さて、私は自分のコードを書いていますが、それはおそらくすべて間違っています。 –

+0

なぜあなたの 'POST'リクエストで" error_return_url "と" mid "を送信しますか?それは "Usuario"、 "Senha"、 "go"でなければなりません。 "go"の値は空白なので、this = .data( "go"、 "")のように送信します。そしてなぜ 'POST'の後に2回目の' GET'リクエストを送るのですか? – TDG

答えて

0
Caused by: java.net.MalformedURLException: no protocol: aluno.cefsa.edu.br/login 

ないプロトコルセットにアプリからのアプリケーション要求を作る助けてもらえますし、あなたは、httpを追加する必要があります://またはhttps://をURLに追加

+0

しかし、彼がログインしているかどうかわかりません。どうすれば次のページから情報を得ることができますか? –

+0

それについて別の質問を開いて、問題が解決したら私の答えを受け入れてください。とにかく..あなたはリクエストから結果を解析し、結果を保存する必要があります(ログイン成功はメッセージで失敗します) –

関連する問題