2014-09-26 96 views
0

傳遞複雜參數,我該怎麼傳遞HTTP GET方法一樣在HTTP GET方法

region:[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079},{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}]] 

參數,如:http://127.0.0.1:8080//manage/vehicle/searchCircularArea/?region=

我知道center:[116.300319,39.988877]是如URL

http://127.0.0.1:8080//manage/vehicle/searchCircularArea/?center=116.300319&center=39.988877&radius=281 

但如何我寫的地區的網址參數?

感謝您的幫助

回答

1

恕我直言,編碼正確的方法/在一個URL序列化,這將是:包括爲便於清晰起見

http://localhost:8000/manage/vehicle/searchCircularArea/?region[0][lng]=116.298871&region[0][lat]=39.991466 
    &region[1][lng]=116.298871&region[1][lat]=39.990079 
    &region[2][lng]=116.295787&region[2][lat]=39.990079 
    &region[3][lng]=116.295787&region[3][lat]=39.991466 

(換行符,實際上應該 「」閱讀「%2E」)

當然,沒有什麼能夠阻止您將JSON扔到URL中。但如果你想要一些RFC的證明,這是上面的解決方案。

0

有一個我的解決方案。

region:[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079},{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}] 

也許你可以把該區域,如:

http://localhost:8080//manage/vehicle/searchCircularArea/?region="[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079},{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}]" 

在服務器可以使用傑克遜或GSON或其他你喜歡的JSON字符串轉換爲一個對象。

可能:

class Loc { 
    private double lng; 
    private double lat; 
    getter and setter; 
} 
class Test { 
    public static void main(String[] args) { 
      String region = "[{'lng':116.298871, 'lat':39.991466},{'lng':116.298871, 'lat':39.990079},{'lng':116.295787, 'lat':39.990079},{'lng':116.295787, 'lat':39.991466}]"; 
      List<Loc> res = new Gson().fromjson(region), new TypeToken<List<Loc>>(){}.getType()); 
    } 
}