0

明確にするために、私はHTTPの経験がほとんどありません。このプロジェクトは私にとって非常に野心的なものですが、それを達成するために学びたいと思っています。ネット上で例を探しましたが、適切な解決策が見つからないようです。GETやPOSTなどの用語を認識しており、プログラムでWebサイトを操作する基本的な方法を理解しています。

基本的に、私が働いている会社には、ログインできるクライアントのデータベースを備えたWebサイトがあります。手始めに、ユーザー名とパスワードを使用してメインページにログインできるAndroidアプリを作成できるようにしたいと思います。このサイトのログインURLはhttps:// "app.companysite.com" /Security/Login.aspx?ReturnUrl=%2fHome%2fDefault.aspxであり、次の目的の証明書があります。リモートコンピュータ」。

私がしていることは可能ですか?最終的には、クライアントページを開いてデータを編集し、再送信できるようにしたいと思いますが、一度に1ステップずつです。

私の目標を達成するのに役立ついくつかの関連する読み物またはソースコードの方向に私を向けることができれば素晴らしいでしょう。

前もって感謝します!

4

1 に答える 1

0

これが役立つかどうかはわかりませんが、ログインの方法は正当化のためだけです。だから私がしたことは(検証がMySQLデータベースを介して行われると仮定しているので)ログインユーザー名とパスワードが正しいことを確認するだけのphpファイルを作成し、「正しい」または「はい」を出力することです。 「または「無効」。このようなもの :

php
//Connects to your Database

      $username = $_POST['username'];
      $password = $_POST['password'];

      //make your mysql query if the username and password are in the database
      //if there is a an approval
     $approval = 1 
     //otherwise
     $approval = 0

    if ($approval > 0) {
       echo "correct";
    } else {
       echo "invalid";
    }

    ?>

これでAndroidで、このWebサイトを呼び出して、次のような出力を返すように要求できます。

HttpParams httpParameters = new BasicHttpParams();
//make a timeout for the connections in milliseconds so 4000 = 4 seconds                    httpParameters.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
int timeoutConnection = 4000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
int timeoutSocket = 4000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

HttpClient httpclient = new DefaultHttpClient(httpParameters);
HttpPost httppost = new HttpPost("your website URL");

// Add your data
String username = "your username";
String password = "your password";

List<NameValuePair> nameValuePairs;
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
HttpResponse response = httpclient.execute(httppost);

BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

String lines = "";
String data = null;
ArrayList<String> al = new ArrayList<String>();

while((lines = in.readLine()) != null){
    data = lines.toString();
    al.add(data);
}
in.close();

//To get the response
if(al.get(0).equals("correct")){
      //Your login was successful
}
else {
    //Your login was unsuccessful
}

これが少しお役に立てば、正しい方向を示してくれることを願っています。

于 2012-11-21T19:12:56.257 に答える