我有一种情况,我使用 POST 方法在模拟器的 safari 浏览器中托管 URL。在模拟器中启动我的 iOS 应用程序后,该网页在 safari 中打开。为了启动 safari,我使用了 [[UIApplication sharedApplication] openURL: ...
post方法如下:
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 时可以正常工作。但我想使用这个“请求”启动 Safari,该“请求”从 POST 方法中附加了用户名和密码数据。
要启动 Safari,我必须调用此代码:
[[UIApplication sharedApplication] openURL:request];
但这显然会引发警告,因为“请求”是 NSMutableURLRequest 类型。“语义问题:不兼容的指针类型将“NSMutableURLRequest *”发送到“NSURL *”类型的参数...
我什至不能使用[[UIApplication sharedApplication] openURL:request.URL];
,因为这会给我一个没有附加用户名和密码的 URL(没有 POST 方法)。
我想知道如何对这个请求进行类型转换/转换(NSMutableURLRequest),以便我可以在 [[UIApplication sharedApplication] openURL ...
希望我对我的问题很清楚。任何帮助将不胜感激。提前致谢 !!