2011-02-02 2 views
1

웹 서비스에서 데이터를 가져와야하는 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이

example.com/service.php?id%5B%5D=1 & 아이디 % 5B % 5D = 2

: 정말 접속하려는 URL이되도록 자동으로 인코딩은 다음과 같습니다

그 결과, 내 요청이 원하는 정보에 액세스하지 못합니다. NSURL이 URL을 인코딩하지 못하게하여이 웹 서비스에 액세스 할 수있는 방법이 있습니까?

+0

나는 웹 서버가 url-escaped 문자열을 받아들이지 않는다는 것에 정말로 놀랐다. NSURL이하는 일은 적절한 웹 행동이며, 대괄호는 웹에서 변경되지 않고 그대로 있어야합니다. 브라우저에서 이스케이프 처리되지 않은 버전을 붙여 넣는 경우 (예 : 다시 이스케이프 처리해야하는 경우) 요청이 올바르게 작동하는지 확실히 확신 할 수 있습니까? 어딘가에서 이스케이프 처리를하고 있습니까? –

답변

1

내 경우에는 서비스 소유자와의 통신이 문제를 일으킨 서버에서 비정상적인 동작을 일으킨 것으로 밝혀졌지만 NSURL이 문자열을 처리 한 것으로 잘못 생각했습니다. 사과 드리며 답변 해 주셔서 감사합니다.

0

내 응용 프로그램에서 이러한 문제가 발생했습니다. URL을 구성하기 전에 URL 문자열을 인코딩하여 해결했습니다. 그래서 u는 더 ifno의 link을 참조하십시오이

NSString *string = @"http://example.com/service.php?id%5B%5D=1&id%5B%5D=2"; 
NSURL *url = [NSURL URLWithString:string]; 
NSMutableURLRequest *networkRequest = [NSMutableURLRequest requestWithURL:url]; 

처럼 할 필요가 있다고 생각합니다.

+0

예, 한 번에이 작업을 시도했지만 작동하지 않았습니다. –

+0

그럼 내가 인코딩 한대로 전체 URL을 인코딩해야합니다. 나는 URL 문자열'http % 3A % 2F % 2Fexample.com % 2Fservice.php % 3Fid % 5B % 5D % 3D1 % 26id % 5B % 5D % 3D2' – YPK

0

아마도 단순히 탈출 :

NSString *string = @"http://example.com/service.php?id\[\]=1&id\[\]=2"; 

그것은 너무, 백 슬래시에는 urlencoding 끝날 가능성이 있습니다,하지만 그것은해볼 가치가있다.

+0

을 받게 될 것입니다. 질문을 게시하기 전에 이것을 시도했지만, 작동하지 않았다. –

관련 문제