웹 서비스에서 데이터를 가져와야하는 iPhone 응용 프로그램을 작성 중입니다. 이 서비스에서는 여러 값을 갖는 동일한 변수가있을 수 있으며이 변수는 [] 대괄호를 사용하여 액세스됩니다. (I는 PHP 개발자 아니지만, 나는이 방식은 PHP 서비스를 위해 드물지 않다 이해합니다.)get 요청에 대괄호를 사용하는 PHP 웹 서비스에서 NSURL 사용
그래서 샘플 요청과 같습니다
example.com/service.php?id [] = 1 & 이드 [] = 2
I의 URL을 형성하기 위해 사용하고있는 코드는 다음과 같다 : 문제가
NSString *string = @"http://example.com/service.php?id[]=1&id[]=2";
NSURL *url = [NSURL URLWithString:string];
NSMutableURLRequest *networkRequest = [NSMutableURLRequest requestWithURL:url];
...
을, 두번째 라인 이후의 URL이
: 정말 접속하려는 URL이되도록 자동으로 인코딩은 다음과 같습니다example.com/service.php?id%5B%5D=1 & 아이디 % 5B % 5D = 2
그 결과, 내 요청이 원하는 정보에 액세스하지 못합니다. NSURL이 URL을 인코딩하지 못하게하여이 웹 서비스에 액세스 할 수있는 방법이 있습니까?
나는 웹 서버가 url-escaped 문자열을 받아들이지 않는다는 것에 정말로 놀랐다. NSURL이하는 일은 적절한 웹 행동이며, 대괄호는 웹에서 변경되지 않고 그대로 있어야합니다. 브라우저에서 이스케이프 처리되지 않은 버전을 붙여 넣는 경우 (예 : 다시 이스케이프 처리해야하는 경우) 요청이 올바르게 작동하는지 확실히 확신 할 수 있습니까? 어딘가에서 이스케이프 처리를하고 있습니까? –