2013-04-05 3 views
3

iOS를 조사하기 시작했고 안정된 네트워킹이 필요하기 때문에 AFNetworking을보고 있습니다. 나는 좋은 예제를 따라 왔고 그것을 사용하는 방법을 이해하고 있지만 빌드 된 요청에는 예상 된 URL이 없다고 생각합니다. AFHTTPClient requestWithMethod 경로 매개 방법에 ,AFNetworking이 올바른 URL을 작성하지 못하고 있습니까?

po urlBase 
$0 = 0x003b23b8 https://mysite.com/developer/api 
(lldb) po url 
$1 = 0x1eddf140 /users/current -- https://mysite.com/developer/api/ 
(lldb) po request 
$2 = 0x1ed50580 <NSMutableURLRequest https://mysite.com/users/current> 

현상 부는 어떤 이유로 벗겨지고있다.

getPath 메서드에 전달 된 상대 경로 문자열에 선행 슬래시가있는 경우를 보았습니다. 따라서 기본 URL에 후행 슬래시가 없을 것으로 예상되지만 사람들이 양쪽 모두에 슬래시를 넣는 예제를 보았습니다 .

내 기본 URL의 VAR는

NSString *const ServiceUrlBaseProduction = @"https://mysite.com/developer/api/"; 

하고 상대 경로는 현재 사용자가

@"https://stackoverflow.com/users/current"; 
+0

왜 상대 경로에 슬래시를 포함하고 있는가? –

답변

5

이것은 AFHTTPSessionManager의 URL 해석 때문입니다. AFHTTPSessionManager.hhere에는 URL을 올바르게 작성하는 방법에 대한 설명이 나와 있습니다. 나는 대신 경로 users/current을 가진 현재 사용자를 얻고 싶을 것이라고 믿는다. (선도 슬래시는 사용하지 않는다.)

+0

예, 기본 URL에서 후행 슬래시를 남긴 경우에도 URL에 어쨌든 URL이 있습니다. 내 상대 경로에서 선도적 인 슬래시, URL을 적절하게 빌드합니다. – topwik

+0

정확합니다. 나는 그것이 혼란스러운 행동이라는 것에 동의한다 –

+0

링크는 이제 404이고, AFHTTPClient.h는 더 이상 존재하지 않는다고 생각한다. URL을 작성하는 방법에 대한 설명은 [AFHTTPSessionManager.h] (https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking/AFHTTPSessionManager.h) 소스에서 찾을 수 있습니다. –

0

사용해보십시오 NSURL이다 얻을 :

NSURL *url = [NSURL URLWithString:@"https://mysite.com/developer/api/"]; 

다음 :

[NSURL URLWithString:@"users/current" relativeToURL:url]; 
+0

AFHTTPClient에서 상속받은 클라이언트를 빌드하려고합니다. 내 init은 NSURL을 사용하여 자체 초기화합니다. [self = [super initWithBaseURL : [NSURL URLwithString : [[self class] urlBase]]] ... – topwik

관련 문제