我們正在開發一個iphone應用程序,用於將用戶所在的位置的json字符串發送到部署在Google應用程序引擎上的Web應用程序(JAVA)。我們使用htpp請求來發送這些字符串。我們的問題是琴絃有時很大,而且這需要很長時間。還有其他方法嗎?將iphone的json對象發送到java servlet的時間過長
回答
如果您的系統正在發送一組位置,請不要一次全部發送它們,而是將整個集合分成小塊,其大小估計不會花費太多時間。
另一個想法:如果你這樣做發送作爲後臺進程,主流程(如在用戶界面)不應受到懲罰。
你可以壓縮你的JSON。這是GAE的一段代碼:
JSONObject json = new JSONObject(uncompress(Base64.decode(encodedJSONData)));
這是解壓方法:
protected String uncompress(byte[] compressedData) throws IOException {
StringBuffer data = new StringBuffer();
GZIPInputStream stream = new GZIPInputStream(new ByteArrayInputStream(compressedData));
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
String line;
while ((line = br.readLine()) != null) {
data.append(line);
}
return data.toString();
}
除了作爲浪費空間的方式之外,base64編碼壓縮數據絕對沒有意義。 – 2012-01-19 00:37:27
必須通過HTTP請求發送Base64編碼。你建議另一種方式? – Victor 2012-01-19 12:09:45
不,不是。您可以在HTTP請求中發送二進制數據。 – 2012-01-19 23:17:07
- 1. 將json對象從jsp發送到servlet
- 2. 不能發送json對象到servlet
- 3. 將json對象從jsp發送到servlet時沒有響應
- 4. 使用PrintWriter對象將List對象從Java Servlet發送到JSP?
- 5. 從柔性發送對象的Java Servlet
- 6. 將servlet對象數組發送到JSP
- 7. 用Java通過TCP發送JSON對象
- 8. 如何使用json將文件對象發送到servlet
- 9. 通過iphone發送文本到servlet
- 10. 無法通過AJAX將JSON對象從Javascript發佈到Servlet
- 11. 無法將JSON對象發送到XMLHttpRequest
- 12. 如何通過超鏈接將對象從JSP發送到Servlet?
- 13. 通過Post發送Json對象到Laravel
- 14. 發送JSON對象到Rails
- 15. Java:從servlet轉發到servlet時過濾
- 16. 如何將JSON從Android發送到Servlet
- 17. 發送JSON對象到Flex
- 18. 發送JSON從servlet到javascript
- 19. 訪問JSON的對象值,將它們發送到另一個servlet或jsp
- 20. 在javascript中創建json對象並將其發送給servlet
- 21. 如何從android發送對象到servlet?
- 22. 使用$ .ajax發送json對象沒有獲取到servlet
- 23. 將Java對象從JavaScript發送到Applet
- 24. 我無法接收從我的servlet發送的json對象
- 25. 如何將json對象從java發送到.net客戶端?
- 26. 生成JSON對象中的Java Servlet
- 27. 的NodeJS:發送JSON對象
- 28. 將Java對象到JSON
- 29. 發送複雜的JSON對象到MVC
- 30. 如何在java中發送Json對象
我們之前曾請求時序的問題,所以我們不得不分割字符串來塊,所以現在我們實際上是以大塊的形式發送集合,但它仍然需要很長時間,儘管它總是有效。在後臺發送是一個不錯的選擇,因爲它不會干擾用戶界面和用戶體驗。但是我想知道爲什麼很多更大的文件(例如照片)如此快速地上傳到Facebook或Twitter等應用程序中?他們是否使用其他協議? – user1156139 2012-01-18 12:12:05