簡體   English   中英

Android:如何發送安全請求並獲取PHP網站的響應?

[英]Android : How to make secure requests and get responses to/from a PHP website?

我正在為一家用戶正在尋找房屋出租的企業工作。 這些可以通過我們的網站查看。

我希望創建一個Android應用程序,以幫助人們在他們的智能手機上找到房子。 如何讓移動應用程序從Web服務器(PHP / MySQL *)獲取數據並向其發出請求?

這不是Web服務的定義嗎? 那么PHP和Android平台版本8(2.2 Froyo)支持哪種Web服務?

有一個重要的要求:它應該是安全的,要求應用程序進行身份驗證,即只有應用程序才能訪問數據。

*支持Python 2.6.6。 我真的很喜歡Python,但我不想混合使用服務器語言,因為100%的網站是用PHP編寫的。

如何讓移動應用程序從Web服務器(PHP / MySQL *)獲取數據並向其發出請求?

在Android上,您可以使用舊版本的Apache HTTP Client 因此,該方面可以從您的應用程序向您的服務器發出HTTP請求:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("https://www.myserver.com/webservice/xyz");
HttpResponse response = client.execute(request);

只需3行代碼即可獲得GET請求。

那么PHP和Android平台版本8(2.2 Froyo)支持哪種Web服務?

PHP可以使用各種不同的Web服務庫 ,如SOAP和其他基於XML的協議。 就個人而言,我不會那樣做,因為XML很臃腫。 您希望在服務器和客戶端之間保持較小的傳輸數據,因為您正在處理移動設備,有限的帶寬和昂貴的數據計划。 JSON是XML的一種更緊湊的替代方案。 您還可以創建自己的“二進制”數據格式,以便在服務器和客戶端之間交換數據。

在Android方面,您只需要為您選擇的Web服務尋找合適的Java客戶端庫。 或者,如果您選擇自定義解決方案,您只需自己編寫代碼即可。

有一個重要的要求:它應該是安全的,

使用HTTPS

通過要求來自應用程序的身份驗證,即只有應用程序才能訪問數據。

除非您正在處理用戶登錄,否則無法可靠地執行,然后是。 如果您確實要求用戶登錄,請查看OAuth。

不要在客戶端應用程序或服務器上存儲純文本密碼。

如果您只想強制執行只有您的應用程序可以訪問該Web服務,那么您可以在應用程序的HTTP請求標頭中添加類似“客戶端密鑰”字符串的內容。 您的服務器將要求存在密碼字符串,否則將拒絕訪問。

但這並不能阻止人們查看你的應用程序以找出這個秘密。 你可以通過混淆那個秘密字符串來使它變得更難,就像在字母周圍隨機混亂一樣。

您還可以定期更改每個主要更新的客戶端密鑰。 這將要求您的用戶必須更新,否則他們將被鎖定。

您可能需要考慮實現一個函數來在PHP應用程序中查詢Android應用程序中的JSON數據(如json-simple ),並在服務器中查找一個檢索GET請求的方法(查看插入的$ _GET然后再發回JSON) )。

您也可以使用XML,純文本或其他任何東西,但JSON可能是最小的,也是最快的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM