在HTTP GET方法

在HTTP GET方法

问题描述:

传递复杂参数,我该怎么传递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 

但如何我写的地区的网址参数?

感谢您的帮助

恕我直言,编码正确的方法/在一个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的证明,这是上面的解决方案。

有一个我的解决方案。

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()); 
    } 
}