在我的网络浏览器中,我正在尝试加载UIWebView
,其中NSData
来自NSURLConnection
。当我尝试将其加载到UIWebView
而不是网站时,它会显示HTML纯文本。
这是我的代码:
viewDidLoad:
中的
NSURLRequest *request = [NSURLRequest requestWithURL: [NSURL URLWithString:@"http://www.msn.com"]];
[NSURLConnection connectionWithRequest: request delegate:self];
稍后在代码中
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
webdata = [NSMutableData dataWithData: data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[webview loadData:webdata MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
}
答案 0 :(得分:14)
您没有附加您收到的数据。使用这段代码
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
if (webdata == nil) {
webdata = [[NSMutableData alloc] init];
}
[webdata appendData:data];
}
此方法可能会被调用一次或多次,具体取决于您的数据长度。因此,不是将新数据分配给您的ivar,而是将数据附加到它,以便您获得完整的响应而不是最后收到的数据包。
---------------------------------------------- -------------------------------------------------- ------------------------------------
的更新强>
或者像这样使用。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
webdata = [[NSMutableData alloc] init];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[webdata appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[mWebView loadData:webdata MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
}