2011-01-29 18 views
0

基本的に私は自分のユーザー名とパスワードを入力できるフォームを自分のアンドロイドアプリに持っていて、これはPHPオンラインで作成された非常に簡単なログインページにPOSTEDされます。私は次に、XMLファイルからデータをプルダウンする第2のペイにアクセスする必要があります。このページにアクセスするには、ユーザーがログインする必要があります。ユーザーに表示されるxmlページは、ユーザー名に依存します。チェックは、私がandroidからのウェブサイトへのログイン

<?php 
session_start(); 
?> 

を持っているユーザーは、Iでログインしているかどうかを確認するかの簡単な文を使用してログインすることを、私は、各ページの冒頭に

session_start(); 
session_register("username"); 

を持って自分のログインページで

if(!session_is_registered("username")){?> 
display whatever 

else bla 

私のアンドロイドアプリケーションでこの作業を行うにはどうすればよいですか?私はログインした後にxmlページにアクセスできません。ログインしていると認識しないためです。

答えて

0

1回だけの検索であれば、セッションにはなぜ迷惑でしょうか?アプリケーションがユーザーの資格情報を要求に直接応答するように、WebサイトにXMLファイルを提供させます。

何らかの理由でセッションを使用する必要がある場合は、セッションIDのPOST要求に対する応答を検索し、XMLデータの要求とと​​もにセッションIDを渡す必要があります。セッションIDはCookie内にある可能性が高く、ページのハイパーリンク内にも存在する可能性があります(ログインの設定方法によって異なります)。

+0

だからあなたの言うことは、私は成功した場合はxmlを取得するアプリケーションの別のログインを持つことができますか?私のXMLリーダーをtry/catchなどでスティックし、ログインに失敗した場合はエラーを表示しますか?そのように考えたことはありません。 –

1

まず、ウェブブラウザを使用してログインを実行し、正常に機能することを確認します。次に同じことをやり直して、Live Http HeadersまたはCharles Proxyのようなものを使用して、要求ヘッダーと応答ヘッダーを調べます。私は、成功したログインの後で前後に渡された何らかのセッションクッキーがあると思います。成功したログインのレスポンスからクッキーを読んで、XMLページのリクエストとともに返信する必要があります。

EDIT
HttpClientを使用してクッキーとポストを実行し、別のthis threadに私の質問と回答でHttpsUrlConnectionを使用しての簡単な例があります。

0

PHPセッションはCookieで実装されています。 session_start()を呼び出すと、応答にはSet-Cookieヘッダーが含まれ、PHPセッションIDを含むブラウザのCookieが設定されます。既定では、Cookieの名前をsession.name PHP configuration optionに変更しない限り、Cookieの名前はPHPSESSIDです。

ユーザーをログインさせた後、セッションIDを含むCookieヘッダーを使用して後続の要求を発行する必要があります。各リクエストを送信する前に、ユーザーをログインするために使用したCookieStoreオブジェクトを再利用する(新しいHttpClientインスタンスでAbstractHttpClient#setCookieStoreを呼び出してください)。

0

本質的には、アンドロイドでhttpclientのlibsを使用してプログラムでポストを実行し、レスポンス(set-cookie headeR)からセッションクッキーを取得し、そのクッキーをサーバーへの後続のリクエストに必ず含めてください。

あなたはthisのように投稿を行うためにhttpclientを使用する方法についてGoogleをGoogleにすることができます。 here's httpclientを使用してリクエストにCookieを挿入する例。私はあなたにいくつかのjavadocsを読んでもらう/一緒に置くためにいくつかの例を見つける。