登录到HTTPS ASPX页面的Android App

时间:2012-11-21 15:17:04

标签: java android asp.net http

为了说清楚,我几乎没有HTTP经验。这个项目对我来说非常雄心勃勃,但我愿意学习以便能够完成它。我已经在网上搜索了一些例子,但我似乎无法找到适当的解决方案。我知道像GET和POST这样的术语,并了解以编程方式与网站交互的基本方法。

基本上,我正在与之合作的公司有一个网站,其中包含我可以登录的客户数据库。对于初学者,我只想编写一个能够使用我的用户名和密码登录主页面的Android应用程序。该网站的登录URL为https://“app.companysite.com”/Security/Login.aspx?ReturnUrl=%2fHome%2fDefault.aspx,并且具有用于以下目的的证书:“确保身份远程计算机“。

我正在做什么?最后,我希望能够打开一个客户端页面并编辑他们的数据并重新提交,但这只是一步一步。

如果你能指出一些可以帮助我实现目标的相关阅读材料或源代码,那将是非常棒的。

提前致谢!

1 个答案:

答案 0 :(得分: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中,您可以发出此请求来调用此网站并返回如下输出:

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
}

我希望这对你有所帮助,并指出你正确的方向。