簡體   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