我想讓Android設備發送數據到PHP服務器。接收後,PHP服務器將其他數據發送給Android。第一部分可以通過使用JSON來完成。但是,我不知道如何讓PHP服務器向Android發送數據。對不起,我是PHP新手!如何讓PHP服務器向Android設備發送數據
回答
無論您的PHP腳本「打印」什麼數據都會返回到Android設備上的響應中。
你可以做這樣的事情在PHP中:
<?php
// TODO: Handle incoming data
// Send JSON data back to client
header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json');
// Compute data
$data = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
// Encode/print data
echo json_encode($data);
?>
你會想取代你的代碼來處理從客戶端(安卓)提交的數據的第一個評論。然後,您將響應標頭設置爲application/json
和echo
以反向您的編碼數據。
從技術上講,你可以用echo
/print
取回任何你喜歡的東西,但是使用像JSON這樣的格式可以更容易地解碼客戶端的數據。
什麼你要找的是某種形式的AJAX調用,允許HTTP GET請求,要堅持和等待服務器返回值:
http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/
我目前正在開發的是真實通信應用與PHP服務器(雙向通信,服務器發送數據到應用程序和應用程序發送數據到服務器),在objective-c [iphone],但原則是相同的我猜。
我們使用REST服務和JSON。
在你的情況下,它應該像這樣工作:
移動1通過REST調用將數據發送到REST服務器(它調用方法1服務器開發,例如,使用Zend_REST。),它將數據存儲在數據庫(以mySQL爲例)。
移動2週期性地向REST服務器發送請求到一個檢查mySQL中新條目的方法。如果有新的東西,它會用數據發送響應,否則發送錯誤。
這裏是一個Android的片段發送POST請求,一些虛假網站,發送電子郵件,密碼和數據串(你會把你的JSON數據串
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://website.com/yourPageHere.php");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", emailString));
nameValuePairs.add(new BasicNameValuePair("password", passwordString));
nameValuePairs.add(new BasicNameValuePair("data", yourDataString));
try {
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) {
//do stuff
}
HttpResponse response = null;
try {
response = httpClient.execute(httpPost);
} catch (ClientProtocolException e) {
//do stuff
} catch (IOException e) {
//do stuff
}
if(response == null){
//time out or other problem, fail gracefully
}
HttpEntity responseEntity = response.getEntity();
try {
String jsonString = EntityUtils.toString(responseEntity);
//jsonString is the full body of the response from the server
//if your php script is sending json, thats whats in here
} catch (ParseException e) {
//do stuff
} catch (IOException e) {
//do stuff
}
你的PHP腳本,yourPageHere .PHP 對待這就像任何其他的PHP腳本,你可能會寫,但不是返回HTML你是剛剛返回表示文本的JSON數據塊。
<?php
header('Content-type: application/json');
/*
here you can use the $_POST['email'], $_POST['password']
and $_POST['data'] indexes to access the data sent to
you from the phone, then create a json string to return
to the phone
*/
/* you can convert php objects/arrays to json using
json_encode($object), handle this however you
want just so that $jsonString is the final
representation of the json object */
$jsonString = 'blabla';
/*
prints the string in the body of the response,
this is the "jsonString" object found in the
above android snippet.
*/
echo $jsonString; //
?>
你可以做次上面用GET請求代替POST也是如此。 如果你是真的新的PHP你可能想要做一對夫婦形式的頁面樣本,以獲得閱讀url參數的掛起。
謝謝。這正是我需要的。 – Peter
- 1. 從PHP服務器發送推送通知到Android設備
- 2. 如何從計時器任務向Android服務發送數據
- 3. 發送數據從服務器到特定的Android設備
- 4. 從Android設備向Apache Web服務器發送數據的高效方式
- 5. Android設備發送空數據到PHP
- 6. 如何通過api在android中向服務器發送數據?
- 7. 如何在android中向服務器發送註冊數據?
- 8. 如何從Android發送數據到php服務器?
- 9. 如何發送數據形式的PHP服務器到Android
- 10. 客戶端向tcp服務器發送數據,tcp服務器向另一臺服務器發送數據
- 11. 向服務器發送大量數據
- 12. 實時向服務器發送數據
- 13. 如何從Android設備向Arduino adk發送數據
- 14. 如何從應用程序服務器向GCM服務器發送發送註冊請求以註冊設備?
- 15. 已發送Android GCM服務器,但GCM未推送至設備
- 16. 一臺服務器向Android和iOS設備發送推送通知
- 17. 發送設備令牌服務器
- 18. 從蘋果推送通知服務向服務器發送設備令牌
- 19. 如何向Web服務器發送我發佈gzip的數據?
- 20. 將數據發送到PHP服務器
- 21. Android將數據發送回服務器
- 22. Android:發送數據到服務器
- 23. 如何在Qt創建器中向服務器發送數據?
- 24. 將設備令牌發送到服務器的MySQL數據庫
- 25. 從服務器發送數據到GPS設備
- 26. 當從移動設備向服務器發出請求時,將什麼設備信息發送到服務器
- 27. 向GRPS設備發送數據/從GRPS設備接收數據
- 28. 使用服務和控制器向服務器發送數據
- 29. 如何將數據發送到PHP服務器並接收數據到Android
- 30. 如何在android中每12小時向Android中的服務器發送數據?
謝謝。你是對的。 – Peter
@Pater如果您不介意,請將此答案標記爲正確。 –