Objective - C 동기 화 요청, 비동기 요청, GET 요청, POST 요청
14205 단어 Objective-C
설명 하 다.
1. 동기 화 요청 은 인터넷 에서 데 이 터 를 요청 할 수 있 습 니 다. 동기 화 요청 을 보 내 면 프로그램 은 사용자 의 상호작용 을 중단 하고 서버 가 데이터 로 돌아 갈 때 까지 다음 작업 을 할 수 있 습 니 다.
2. 비동기 요청 은 메 인 스 레 드 를 막 지 않 고 새로운 스 레 드 를 만 들 것 입 니 다. 사용자 가 비동기 요청 을 한 후에 도 UI 를 조작 할 수 있 고 프로그램 은 계속 실행 할 수 있 습 니 다.
3 GET 요청, 접근 경로 에 인 자 를 직접 쓰 십시오.조작 은 간단 하지만 외부 에서 쉽게 볼 수 있 고 안전성 이 높 지 않 으 며 주 소 는 최대 255 바이트 이다.
4 POST 요청, 인 자 를 body 에 넣 습 니 다.POST 요청 작업 은 상대 적 으로 복잡 합 니 다. 매개 변수 와 주 소 를 분리 해 야 하지만 안전성 이 높 고 매개 변 수 를 body 에 넣 으 면 쉽게 포착 되 지 않 습 니 다.
동기 GET 요청
// , URL
NSURL *url = [NSURL URLWithString:@"http://www.shiniv.com/test.php?type=get"];
// , URL
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
//NSURLRequest : , : , : ( )
/* :
NSURLRequestUseProtocolCachePolicy( )
NSURLRequestReloadIgnoringLocalCacheData( )
NSURLRequestReturnCacheDataElseLoad( , , )
NSURLRequestReturnCacheDataDontLoad( , , , , )
NSURLRequestReloadIgnoringLocalAndRemoteCacheData( , , )
NSURLRequestReloadRevalidatingCacheData( , )*/
// ,
NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
동기 POST 요청
// , URL
NSURL *url = [NSURL URLWithString:@"http://www.shiniv.com/test.php"];
// ,
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"POST"];// POST, GET
NSString *str = @"type=focus-c";//
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
// ,
NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
NSLog(@"%@",str1);
비동기 GET 요청
// , url
NSURL *url = [NSURL URLWithString:@"http://www.shiniv.com/test.php?type=get"];
// ,
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
// ,
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
비동기 POST 요청
// , url
NSURL *url = [NSURL URLWithString:@"http://www.shiniv.com/test.php"];
// ,
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"POST"];
NSString *str = @"type=focus-c";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
// ,
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
비동기 요청 에이전트
//
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
NSLog(@"%@",[res allHeaderFields]);
self.receiveData = [NSMutableData data];
}
// ,
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[self.receiveData appendData:data];
}
//
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *receiveStr = [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
NSLog(@"%@",receiveStr);
}
// , ( , )
-(void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
NSLog(@"%@",[error localizedDescription]);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PreferenceBundle에서 오른쪽 상단에 Respring 버튼을 클릭합니다.만나서 반갑습니다, Minazuki라고합니다. 프로필 이름 : Minazuki_dev Twitter : Repo : 아직 중학생이므로 말이 이상한 곳이 있습니다만 용서해 주세요… 🙏 theos (Mac이든 단품이든 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.