POST HTTPメソッドでURLを呼び出しています。私が3GやWiFiに接続していないとき、URLを正しく取得することは決してなく、URLからの応答を正しく取得しません。 接続はポストを介して行われます。iphoneでURLがサポートされないエラーを回避する方法
NSString *URL = [NSString stringWithFormat:@"http://www.abc.com/webservices/client_server.cfc];
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSString *time_stamp =[NSString stringWithFormat:@"time_stamp=%@", self.today];
NSData *postData = [time_stamp dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *URLRequest = [[[NSMutableURLRequest alloc] init] autorelease];
[URLRequest setURL:[NSURL URLWithString:URL]];
[exhURLRequest setHTTPMethod:@"POST"];
[URLRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[URLRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[URLRequest setHTTPBody:postData];
self.connection =[[[NSURLConnection alloc] initWithRequest:URLRequest delegate:self] autorelease];
NSAssert(self.connection != nil, @"Failure to create URL connection.");
私は通過応答を取得する場合、私はチェックしています:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
// check for HTTP status code for proxy authentication failures
// anything in the 200 to 299 range is considered successful
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if (([httpResponse statusCode]/100) == 2) {
self.data = [NSMutableData data];
} else {
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:
NSLocalizedString(@"HTTP Error",
@"Error message displayed when receving a connection error.")
forKey:NSLocalizedDescriptionKey];
NSError *error = [NSError errorWithDomain:@"HTTP" code:[httpResponse statusCode] userInfo:userInfo];
[self handleError:error];
}
}
しかし、URLが接続されていない場合、いくつかはどのように私は地下鉄か何かで午前たときに言うことができます私はURLに接続することができず、「URLがサポートされていません」というメッセージが表示されます。どのように私はそのようなシナリオを避けることができ、アプリはそのようなエラーをスローせずに進むことができますか?誰かがフロントスクリーンでユーザーを待たずにアプリにオフラインリダイレクトを使用している場合。
など@、 だけ特別charecterが&のようにエンコードする必要があります(と「/」、あまりにも、それはエラーが発生する場合があります「」それはエンコードするよう) はURL全体またはベースURLをエンコードいけません確かに私は次のとおりです。 「3GまたはWifiに接続していないときは、URLを正しく取得できません」と言っています。ネットワーク接続がない場合は、実際にはどういう意味ですか?また、リクエストを作成する場所にコードを掲載することもできます。 – onnoweb
@onnoweb私は自分の質問を編集しました。 – lifemoveson