0

コードで見つけることができるURLにJsoupを接続する必要があります

public class MainActivity extends Activity {
private static final String LOG_TAG = "debugger";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    downloadThread.start(); 

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

Thread downloadThread = new Thread() {                     
    public void run() {                                    

        try {    
            Log.i(LOG_TAG,"Beginning");
            Response res = Jsoup
                    .connect("https://cas.scolastance.com/cas-auvergne/login?service=http://clg-cosne-d-allier.entauvergne.fr/sco/Modules/Accueil/Accueil.aspx")
                    .data("username", "myuser", "password", "mypass")
                    .data("submit", "SE CONNECTER") 
                    .method(Method.POST)
                    .execute();    
            Log.i(LOG_TAG,res.toString()); 

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

}

応答は次のとおりです。

org.jsoup.helper.httpConnection$response@41577a10

接続はOKですか?私は開発の初心者です。申し訳ありません。回答ありがとうございます

4

2 に答える 2

0

実際、Jsoup は接続されていません。だから私はこの方法を試しました:

            //First connection, to read the key
            Document doc = Jsoup.connect("https://cas.scolastance.com/cas-auvergne/login?service=http://clg-cosne-d-allier.entauvergne.fr/sco/Modules/Accueil/Accueil.aspx").get();
            String key ="";
            Element keyInput = doc.select("input[name=lt]").first();
            key = keyInput.attr("value");
            System.out.println("received value : " + key);

            //Second connection to post the data  
            Log.i(LOG_TAG,"Connecting ....");
            Response res = Jsoup
                    .connect("https://cas.scolastance.com/cas-auvergne/login?service=http://clg-cosne-d-allier.entauvergne.fr/sco/Modules/Accueil/Accueil.aspx")
                    .data("username", "myuser", "password", "mypass")

                    .data("lt", key) 
                    .data("_eventId", "submit") 
                    .data("submit", "SE CONNECTER") 
                    .method(Method.POST)
                    .execute(); 

            int statusCode = res.statusCode();
            String body = res.body().toString();
            System.out.println("received code : " + statusCode);
            System.out.println("received body : " + body);

ただし、表示されるボディは「ログイン」ボディであり、「接続済み」ボディではありません。

于 2013-01-17T17:00:03.020 に答える
0

これを試して:

res.statusCode();

応答のステータス コードを取得します。

詳細はこちら: http://jsoup.org/apidocs/org/jsoup/Connection.Response.html#statusCode ()

も表示してみてくださいres.body();

于 2013-01-16T19:37:30.917 に答える