4

私のコードは、サーバーに対して 2 つの要求を行っています。1 つは uiwebview に直接、もう 1 つは AFHTTPRequestOperation を使用します。AFHTTPRequestOperation を使用して、応答を uiwebview に渡すだけです。応答を uiwebview に渡し、再度読み込まないための正しい構文は何ですか? サーバーから 2 回呼び出さずにそれを行うにはどうすればよいですか? ロード要求の成功または失敗をテストし、ユーザー名とパスワードを送信して URL に接続できるようにしたいと考えています。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[itemField resignFirstResponder];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *userName = [defaults objectForKey:@"storedUserName"];
NSString *passWord = [defaults objectForKey:@"storedPassWord"];

NSURL *url = [NSURL URLWithString:@"http://www.example.net/"];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL: url];

[client setAuthorizationHeaderWithUsername:userName password:passWord];

NSMutableURLRequest *request = [client requestWithMethod:@"GET" path:[@"/example/itemlookup.php?item=" stringByAppendingString:itemField.text] parameters:nil];

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

    //calling again here was the only way I could figure out to get this into my webview
    //need to get response from above and put into the uiwebview
    [webView loadRequest:request];
    NSLog(@"Success");
} failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Failure"); 
}];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperation:operation];


return YES; 
}
4

2 に答える 2

0

その URL が HTML を返す場合、UIWebView の - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL メソッドを使用できます。

何かのようなもの:

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    [webView loadHTMLString:responseObject baseURL:url]; //If responseObject is HTML 
    NSLog(@"Success");
} failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Failure"); 
}];

変更される可能性があるのは、応答オブジェクトだけです。文字列を取得していない可能性がありますが、NSURLResponse またはその性質のものです。

于 2012-07-27T14:09:44.397 に答える