是否有标准API调用(或调用集)允许我将键/值对列表编码为SINGLE请求参数?不知何故,我以前从未这样做过。
我正在寻找的是生成一个URL,该URL对任意长的参数串进行编码,这些参数将由指示的页面解码。例如:
http://someth.ing/page?params=xxxxxxxxxxxxx
其中xxxxxxx是
的编码形式Map<String, String>
如果没有,那么
List<String>
我知道我的另一种选择是将每个密钥编码为自己的请求参数,但这会在解码端创建大量的解析工作,我宁愿避免。有什么建议吗?
答案 0 :(得分:1)
您只需转换为JSON即可。您可以使用其他Google Gson:
Map<String, String> data = createItSomehow();
String dataAsJson = new Gson().toJson(data);
String url = "http://example.com/some?data=" + URLEncoder.encode(data, "UTF-8");
// ...
另一方面,假设一个servlet:
String dataAsJson = request.getParameter("data");
Map<String, String> data = new Gson().fromJson(json, new TypeToken<Map<String, String>>(){}.getType());
// ...