我需要做的是通过HTTP POST请求向php脚本发送用户名和密码,以便我可以在数据库中查询正确的信息。目前我仍然坚持发送POST请求以及接收它。
要发送用户名和密码,我使用以下内容:
public class post {
public static void main(String[] args) throws ClientProtocolException, IOException {
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.example.com/practice.php");
// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("username", "user"));
params.add(new BasicNameValuePair("password", "hunter2"));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
//Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try {
// do something useful
} finally {
instream.close();
}
}
}
}
我用来收集信息的PHP脚本如下,它很简单,但它只是用于测试。
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo "username = $username<br>";
echo "password = $password<br>";
?>
我想知道是否有人可以通过让我按照从Java接受HTTP POST请求的正确方向帮助我,或者如果我甚至正确地发送帖子请求,我们非常感谢任何帮助。
答案 0 :(得分:2)
现在,有一些事情,我建议你记住这一点。
尝试使用JSON: Json代表 JavaScript Object Notation 。它是一种轻量级,基于文本,与语言无关的数据交换格式,便于人和机器读写。
public static void main(String[] args){
JSONObject obj = new JSONObject();
obj.put("username", username);
obj.put("password", password);
System.out.print(obj);
// And then, send this via POST Method.
}
}
对于Php部分,
...
$data = file_get_contents("php://input");
$json = json_decode($data);
$username = $json['username'];
$password = $json['password'];
...
以下是Json
的一个很好的参考使用会话使用应用程序时,打开它,进行一些更改,然后关闭它。这很像一个Session。电脑知道你是谁。它知道您何时启动应用程序以及何时结束。但是在互联网上存在一个问题:Web服务器不知道您是谁或您做什么,因为HTTP地址不维护状态。 会话变量通过存储要在多个页面上使用的用户信息(例如用户名,喜欢的颜色等)来解决此问题。默认情况下,会话变量会持续到用户关闭浏览器为止。
<?php
$_SESSION["user"] = "green";
echo "Session variables are set.";
// Now store this in your database in a separate table and set its expiry date and time.
?>
以下是sessions的参考资料。
使用SSL :安全套接字层(SSL)技术是在传输层实现的安全性.SSL允许Web浏览器和Web服务器通过安全的连接。在此安全连接中,正在发送的数据在发送之前已加密,然后在接收时和处理之前进行解密。在发送任何数据之前,浏览器和服务器都会加密所有流量。 SSL解决了以下重要的安全注意事项。
一个。 身份验证:在您最初尝试通过安全连接与Web服务器通信时,该服务器将以Web服务器证书的形式向您的Web浏览器显示一组凭据。证书的目的是验证该站点是谁以及它声称的内容。在某些情况下,服务器可能会请求客户端是谁以及它声称是谁的证书(称为客户端身份验证)。
湾机密性:当数据在网络上的客户端和服务器之间传递时,第三方可以查看和拦截此数据。 SSL响应已加密,因此第三方无法破译数据,数据仍然保密。
℃。 完整性:当在网络上的客户端和服务器之间传递数据时,第三方可以查看和拦截此数据。 SSL有助于确保第三方不会在传输过程中修改数据。
而且,以下是一些参考资料。 SSL Establishment Documentation,SSL with Java