HTTP Get 요청으로 어레이를 보내려면 어떻게해야합니까?
요청을 보내기 위해 GWT 클라이언트를 사용하고 있습니다.
답변:
그것은 대상 서버가 수락하는 것에 달려 있습니다. 이것에 대한 명확한 표준은 없습니다. ao Wikipedia : Query string 참조 :
명확한 표준은 없지만 대부분의 웹 프레임 워크에서는 여러 값을 단일 필드 (예 :)와 연결할 수 있습니다
field1=value1&field1=value2&field2=value3
. [4] [5]
일반적으로 대상 서버가 Java ( Servlet ) 와 같은 강력한 유형의 프로그래밍 언어를 사용하는 경우 동일한 이름의 여러 매개 변수로 보낼 수 있습니다. API는 일반적으로 여러 매개 변수 값을 배열로 얻기위한 전용 메소드를 제공합니다.
foo=value1&foo=value2&foo=value3
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3]
은 request.getParameter("foo")
또한에 작동하지만 그것은 단지 첫 번째 값을 반환 할 수 있습니다.
String foo = request.getParameter("foo"); // value1
그리고 대상 서버가 PHP 또는 RoR과 같은 약한 유형[]
의 언어를 사용하는 경우 단일 값 대신 값 배열을 반환하도록 언어를 트리거하기 위해 매개 변수 이름에 중괄호를 붙여야 합니다.
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
여전히을 사용하는 경우 foo=value1&foo=value2&foo=value3
첫 번째 값만 반환됩니다.
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
foo[]=value1&foo[]=value2&foo[]=value3
Java Servlet으로 보낼 때 여전히 얻을 수 있지만 중괄호를 포함한 정확한 매개 변수 이름을 사용해야합니다.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
이 게시물이 정말 오래되었다는 것을 알고 있지만 BalusC의 답변이 정확하다고 표시되어 있지만 완전히 정확하지는 않기 때문에 답장해야합니다.
다음과 같이 foo에 "[]"를 추가하는 쿼리를 작성해야합니다.
foo[]=val1&foo[]=val2&foo[]=val3
<input name="user[name]" /> <input name="user[email]" />
내부는<form>
모든 브라우저에서 기본적으로 제출하는 방법을 정확히 알고 있습니다. 입력은`user [name] = SOMETEXT & user [email] =SOME@TEXT.com이됩니다. --- 디코딩을 어레이로 다시 처리하는 데 필요한 호스트 응용 프로그램입니다.