iosアプリでpost通信がうまくいかない
Posted: 2012年8月06日(月) 14:29
今iosアプリのpost通信処理を書いているのですが、NSURLConnectionを作成できずEXC_BAD_ACCESSが出てしまっています。
しかも時々EXC_BAD_ACCESSが出ずにSIGABORTで落ちる場合も有ります。
通信処理メソッドは以下の通りです。urlstrとstrparamは整形済みの文字列が入った状態で渡されます。
この処理の中で問題点があればご指摘お願いいたします。
- (void)sendPostRequest : (NSString*)urlstr : (NSString*)strparam {
receivedData = [[NSMutableData alloc] initWithLength:0];
NSURL *url = [NSURL URLWithString:urlstr];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setCachePolicy: NSURLRequestUseProtocolCachePolicy];
[request setTimeoutInterval: 100.0];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody: [strparam dataUsingEncoding: NSUTF8StringEncoding]];
[request setHTTPShouldHandleCookies: FALSE];
NSLog(@"conn前");
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
NSLog(@"conn OK");
} else {
// error handling
NSLog(@"conn NG");
}
[request release];
request = nil;
[conn release];
conn = nil;
}
しかも時々EXC_BAD_ACCESSが出ずにSIGABORTで落ちる場合も有ります。
通信処理メソッドは以下の通りです。urlstrとstrparamは整形済みの文字列が入った状態で渡されます。
この処理の中で問題点があればご指摘お願いいたします。
- (void)sendPostRequest : (NSString*)urlstr : (NSString*)strparam {
receivedData = [[NSMutableData alloc] initWithLength:0];
NSURL *url = [NSURL URLWithString:urlstr];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setCachePolicy: NSURLRequestUseProtocolCachePolicy];
[request setTimeoutInterval: 100.0];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody: [strparam dataUsingEncoding: NSUTF8StringEncoding]];
[request setHTTPShouldHandleCookies: FALSE];
NSLog(@"conn前");
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
NSLog(@"conn OK");
} else {
// error handling
NSLog(@"conn NG");
}
[request release];
request = nil;
[conn release];
conn = nil;
}