シミュレーターのサファリブラウザーで POST メソッドを使用して URL をホストしている状況があります。シミュレーターで iOS アプリを起動すると、Safari で Web ページが開きます。サファリを起動するには、[[UIApplication sharedApplication] openURL: ... を使用しました。
投稿方法は以下の通りです。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://***some client url***.jsp"]];
NSString *post = [NSString stringWithFormat:@"username=%@&password=%@", userName, password];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [postData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];`
NSURLConnection* _urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[_urlConnection start];
UIWebView を使用すると、このコードは正常に動作します。しかし、POST メソッドからユーザー名とパスワードのデータを追加したこの「リクエスト」を使用して Safari を起動したいと考えています。
Safari を起動するには、次のコードを呼び出す必要があります。
[[UIApplication sharedApplication] openURL:request];
ただし、「リクエスト」のタイプが NSMutableURLRequest であるため、これは明らかに警告をスローします。「セマンティックな問題: 互換性のないポインター タイプが 'NSMutableURLRequest *' をタイプ 'NSURL * のパラメーターに送信している」...
[[UIApplication sharedApplication] openURL:request.URL];
これにより、ユーザー名とパスワードが追加されていないURLが得られるため(POSTメソッドなしで)、使用することさえできません。
このリクエスト (NSMutableURLRequest) をタイプキャスト/変換して [[UIApplication sharedApplication] openURL...
私の質問がはっきりしていることを願っています。どんな助けでも大歓迎です。前もって感謝します !!