繁体   English   中英

用 Java 发送 HTTP POST 请求并用 PHP 接受 POST 请求

[英]Sending an HTTP POST request in Java and accepting the POST request in PHP

我需要做的是通过 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 接受 php 中的 HTTP POST 请求的正确方向来帮助我,或者如果我什至正确发送了 post 请求,非常感谢任何帮助。

现在,我建议您在执行此操作时牢记以下几点。

  1. 尝试使用 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 的一个很好的参考

  1. 使用会话当您使用应用程序时,您打开它,进行一些更改,然后关闭它。 这很像一个会话。 计算机知道你是谁。 它知道您何时启动应用程序以及何时结束。 但是在 Internet 上存在一个问题: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. ?>

    这是对session的引用。

  2. 使用 SSL安全套接字层 (SSL)技术是在传输层实现的安全性。SSL 允许 Web 浏览器和 Web 服务器通过安全连接进行通信。 在这种安全连接中,正在发送的数据在发送前被加密,然后在收到和处理前解密。 浏览器和服务器在发送任何数据之前都会加密所有流量。 SSL 解决了以下重要的安全注意事项。

一种。 身份验证:在您最初尝试通过安全连接与 Web 服务器通信时,该服务器将以服务器证书的形式向您的 Web 浏览器提供一组凭据。 证书的目的是验证该站点是谁以及它声称的内容。 在某些情况下,服务器可能会请求一个证书,表明客户端是谁以及它声称是什么(这称为客户端身份验证)。

机密性:当数据在网络上的客户端和服务器之间传递时,第三方可以查看和拦截这些数据。 SSL 响应经过加密,因此第三方无法破译数据并且数据保持机密。

C。 完整性:当数据在网络上的客户端和服务器之间传递时,第三方可以查看和拦截这些数据。 SSL 有助于保证该第三方在传输过程中不会修改数据。

而且,这里也有一些参考资料。 SSL 建立文档, SSL with Java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM