[英]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 請求,非常感謝任何幫助。
現在,我建議您在執行此操作時牢記以下幾點。
嘗試使用 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 的一個很好的參考
使用會話當您使用應用程序時,您打開它,進行一些更改,然后關閉它。 這很像一個會話。 計算機知道你是誰。 它知道您何時啟動應用程序以及何時結束。 但是在 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的引用。
使用 SSL :安全套接字層 (SSL)技術是在傳輸層實現的安全性。SSL 允許 Web 瀏覽器和 Web 服務器通過安全連接進行通信。 在這種安全連接中,正在發送的數據在發送前被加密,然后在收到和處理前解密。 瀏覽器和服務器在發送任何數據之前都會加密所有流量。 SSL 解決了以下重要的安全注意事項。
一種。 身份驗證:在您最初嘗試通過安全連接與 Web 服務器通信時,該服務器將以服務器證書的形式向您的 Web 瀏覽器提供一組憑據。 證書的目的是驗證該站點是誰以及它聲稱的內容。 在某些情況下,服務器可能會請求一個證書,表明客戶端是誰以及它聲稱是什么(這稱為客戶端身份驗證)。
灣機密性:當數據在網絡上的客戶端和服務器之間傳遞時,第三方可以查看和攔截這些數據。 SSL 響應經過加密,因此第三方無法破譯數據並且數據保持機密。
C。 完整性:當數據在網絡上的客戶端和服務器之間傳遞時,第三方可以查看和攔截這些數據。 SSL 有助於保證該第三方在傳輸過程中不會修改數據。
而且,這里也有一些參考資料。 SSL 建立文檔, SSL with Java
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.