为了说清楚,我几乎没有HTTP经验。这个项目对我来说非常雄心勃勃,但我愿意学习以便能够完成它。我已经在网上搜索了一些例子,但我似乎无法找到适当的解决方案。我知道像GET和POST这样的术语,并了解以编程方式与网站交互的基本方法。
基本上,我正在与之合作的公司有一个网站,其中包含我可以登录的客户数据库。对于初学者,我只想编写一个能够使用我的用户名和密码登录主页面的Android应用程序。该网站的登录URL为https://“app.companysite.com”/Security/Login.aspx?ReturnUrl=%2fHome%2fDefault.aspx,并且具有用于以下目的的证书:“确保身份远程计算机“。
我正在做什么?最后,我希望能够打开一个客户端页面并编辑他们的数据并重新提交,但这只是一步一步。
如果你能指出一些可以帮助我实现目标的相关阅读材料或源代码,那将是非常棒的。
提前致谢!
答案 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
}
我希望这对你有所帮助,并指出你正确的方向。