2012-10-14 2 views
0

키/값 쌍 목록을 단일 요청 매개 변수로 인코딩 할 수있는 표준 API 호출 (또는 호출 집합)이 있습니까? 어쨌든 나는 전에 이것을 한 적이 없다.URL 요청 매개 변수로 키/값 쌍 목록을 인코딩합니다.

내가 찾고있는 것은 표시된 페이지에서 디코딩 될 매개 변수의 임의의 긴 문자열을 인코딩하는 URL을 생성하는 것입니다. 예를 들어 :

http://someth.ing/page?params=xxxxxxxxxxxxx 

는 XXXXXXX는

Map<String, String> 

의 encode 된 형식이다하거나 사용할 수없는 경우 다음 내 대안을 알고

List<String> 

은 인코딩하는 것입니다 각각의 키를 자체 요청 매개 변수로 사용하지만, 디코딩 측면에서 구문 분석 작업을 많이 만듭니다. 어떤 제안?

+1

는 표준이 없다. 필자는 자동으로 접두사를 디자인하여 매개 변수 (예 : '? mymap_key1 = value1 & mymap_key1 = value2 ...')의 키 이름에 추가합니다. 모든 매개 변수를 검색하고 접두사를 확인한 다음지도를 다시 작성할 수 있습니다. – SJuan76

답변

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"); 
// ... 

그리고 다른 측면에서

는 서블릿을 가정 :

String dataAsJson = request.getParameter("data"); 
Map<String, String> data = new Gson().fromJson(json, new TypeToken<Map<String, String>>(){}.getType()); 
// ... 
+0

이것은 내가 고려하지 않은 흥미로운 아이디어이다 .JSON을 사용할 때의 큰 이점은 클라이언트 측에서 (내가 원한다면) 훨씬 쉽게 처리 할 수 ​​있다는 것이다. 다음 며칠 동안 그것을 가지고 놀고 다시보고하십시오. – AlanObject

관련 문제