19

https サーバーへの同期呼び出しを行う方法を誰か教えてもらえますか? 次のデリゲート メソッドを使用して、https サーバーで非同期要求を実行できます。

- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

しかし、私は同期を行う必要があります。

4

3 に答える 3

24

//リクエストのエンコード

NSData *postData = [xmlText dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

**//Calculating length of request**
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:requestUrlString]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse* response;
NSError* error = nil;

//Capturing server response
NSData* result = [NSURLConnection sendSynchronousRequest:request  returningResponse:&response error:&error];
于 2011-01-06T12:19:57.850 に答える
13
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

NSUrlConnectionhttps で問題なく動作するはずです。

認証情報を提供する場合は、URL の一部である必要があります: ( https://username:password@domain.tld/api/user.json)。

デリゲートを提供する方法はないため、NSURLConnection非標準の認証処理が必要な場合は、非同期で行う必要があります。

于 2011-01-06T08:58:01.567 に答える