2011-12-23 164 views
0

我的代碼向服務器發送緯度經度作爲servlet的參數。 在服務器中,它計算到分支的最近距離,並且應該發回整個城市名稱,地址,分支的緯度和經度等信息。我在服務器的數據庫中擁有所有這些信息,並且我也在距離上獲得有序列表。從服務器發送響應android

但是,如何發送這個列表作爲從服務器到設備的響應,以及如何從android響應中收集這些數據。任何關於代碼示例的幫助都會有所幫助。謝謝。

+0

不確定這裏的問題到底是什麼。您必須以某種方式序列化您的響應 - xml或json - 並將其發送回您的客戶端。在那裏你必須反序列化它才能訪問信息。爲了處理xml或json,有很多庫可用 – AxelTheGerman 2011-12-23 07:37:23

+0

@axel發送響應json或xml以及在android中訪問的任何鏈接。謝謝。 – Mukunda 2011-12-23 12:35:39

回答

1

在服務器端,您需要創建一個名爲resulatanClass的類&使您將要返回的所有數據元。現在在你的回覆中返回這個類。或者,您可以在android應用程序端以XML格式&發送它們,然後在接收它時解析它。

1

您應該嘗試爲此創建一個Web服務。 Web服務就像一個公共函數,您可以通過網絡進行調用。 Web服務的響應可以是XML格式。 Android設備必須連接到Web服務並等待其響應,然後相應地解析響應。

一個Web服務有它自己的鏈接,所以它就像連接到一個URL並等待它的響應。

示例Web服務呼叫:

httpURLConnection = (HttpURLConnection) ((new URL("http://webServiceURL/webServiceMethod")).openConnection()); //connect to the url of the web service 
console = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream())); //get the response of the web service 

示例Web服務方法:

public String webServiceMethod(String argumento) 
{ 
    String response; 
    //set response value here depending on the value of the parameter 
    return response; //yes, returning a response in web service is as straightforward as this 
} 
0

我建議你建立一個JSON字符串,其中包含的所有信息,並做從Android一個HTTP POST請求並找回結果。

使用從服務器檢索到的數據解析JSON並在視圖中使用所需的數據。

1

我會用google-gson

如果你只是想發送一個簡單的對象,你可以做到以下幾點:

1:創建包含要轉移

class MyDataObject { 
    private String cityname, address; 
    private double longitude, latitude; 

    MyDataObject() { 
    // no-args constructor 
    } 
} 

2中的數據對象:創建JSON響應字符串你在你的HTTP響應

MyDataObject data = new MyDataObject(); 
// set values 
Gson gson = new Gson(); 
String responseData = gson.toJson(data); 
// put this string in your response 

3發回:你的Android客戶端

上讀取響應
String responseData; 
// read response string 

Gson gson = new Gson(); 
MyDataObject data = gson.fromJson(responseData,MyDataObject.class); 
// access the data stored in your object 

您還可以使用JSON發送數組或其他更復雜的對象。如果你想使用google-gson,你應該看看GSON User Guide

-axel

相關問題