我在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]
就像网址
http://127.0.0.1:8080//manage/vehicle/searchCircularArea/?center=116.300319¢er=39.988877&radius=281
但我怎么写区域的url参数?
感谢您的帮助
答案 0 :(得分:1)
恕我直言,在URL中对此进行编码/序列化的正确方法是:
http://localhost:8000/manage/vehicle/searchCircularArea/?region[0][lng]=116.298871®ion[0][lat]=39.991466
®ion[1][lng]=116.298871®ion[1][lat]=39.990079
®ion[2][lng]=116.295787®ion[2][lat]=39.990079
®ion[3][lng]=116.295787®ion[3][lat]=39.991466
(包括为了易读性而包括的换行符,"。"实际应该阅读"%2E")
当然没有什么可以阻止你将JSON扔进URL。但是如果你想要一些RFC证明,它就是上面的解决方案。
答案 1 :(得分: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}]"
在服务器中,您可以使用Jackson或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());
}
}