2012-03-15 4 views
1

내가 객관적 C를 사용하고 내가 사파리를 열지 않고도 웹 사이트를로드하려고 (서버 호출을 위해) 사파리를 열지 않고도 웹 사이트를 여는 :목적 C,

을 나는 다음과 같은 기능을 사용하고 있습니다 : 나는이 웹 사이트를로드하지 않는 것으로 나타났습니다 내 데이터베이스에 체크인 할 때

NSString *website =[NSString stringWithFormat:@"http://www.website.com"]; 

NSString *connected = [NSString stringWithContentsOfURL:[NSURL URLWithString:website ]encoding:NSStringEncodingConversionAllowLossy error:nil]; 

하지만, 때 브라우저는, 상점 어떤 이유를 감지합니까에로드?

감사합니다.

+0

NSString * website = [NSString stringWithFormat : "http://www.website.com"]; "@"NSString * 웹 사이트 = [NSString stringWithFormat : @ "http://www.website.com"]을 추가하는 것을 잊었습니다. – Nirma

+0

내 질문을 편집했지만 여전히 동일한 문제 : S – user1051935

답변

0

NSURLConnection 클래스를 사용하여 네트워크에서 데이터를 검색하는 것이 좋습니다. 훨씬 더 유용한 오류 세트를 제공 할 것입니다.

단순한 (그러나 차단하는) 경우, -sendSynchronousRequest:returningResponse:error:으로 시작하면 네트워크에서 URL을 검색하여 (반환 값으로), HTTP 응답 및 오류가 있습니다.

NSURL *url = [NSURL URLWithString: @"http://www.website.com"]; 
NSURLRequest *request = [NSURLRequest requestWithURL: url]; 
NSURLResponse *response; 
NSError *error; 
NSData *data = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error]; 

데이터가 0이 아닌 경우 유효한 응답을 받았고 그렇지 않은 경우 오류는 응답에 대한 정보를 포함합니다. response을 다시 확인하여 원하는 것을 얻었는지 확인하십시오 (서버가 HTTP에 대한 오류 코드를 전송하여 오류가 발생하는 "성공적인"응답이 아님).

POST 명령을 수행해야하는 경우 NSMutableURLRequest를 사용하여 요청 유형을 설정할 수 있습니다.

+0

게시물에 감사드립니다 : 다음과 같은 문제가 발생했습니다 : 나는이 모든 코드를 실행 한 후 : 응답이 없음, 오류가있는 값이 있고 데이터가 아무런 이유가 없음을 알 수 있습니까? – user1051935

+0

오류 응답에는 무엇이 잘못되었는지에 대한 세부 정보가 포함됩니다. 먼저 확인하십시오. NSLog (@ "% @", 오류)는 좋은 시작입니다. – gaige

0

블라드가 맞지만 코드에도 하나의 파일 만로드됩니다. Safari와 같은 브라우저에서 해당 파일을 열면 브라우저가 모든 참조 된 파일을 반복적으로로드하고 존재하는 모든 리디렉션을 처리합니다.

업데이트

브라우저에서 파일 이름없이 URL을 사용하면 작동합니다. stringWithContentsOfURL : 또는 NSURLConnection을 사용하여이 작업을 수행 할 수 있는지 확신 할 수 없습니다.

파일 이름이 "index.html"또는 무엇이든지라면 URL에 추가하십시오. 이러한 메서드는 파일을로드하므로 파일 이름을 포함하여 완전히 정의 된 URL을 제공해야한다고 확신합니다.

+0

자신을 올바르게 표현하지 못했을 수 있습니다. Safari에서 전혀 열지 않으려 고합니다. – user1051935

+0

그럼 어떻게 하시겠습니까? 하나의 파일을로드하거나 재귀 적으로로드하십시오. 그리고 블라드의 제안을 시도 했습니까? – Jim

+0

Safari에서 웹 사이트를 열지 않고 웹 사이트를로드하고 싶습니다. 그래, 내가 블라드의 제안을 따랐다 – user1051935