作者yueyajbdt (碳烤焦猫)
看板MacDev
标题[问题] NSURLConnection NSString无法正确加载到webview上
时间Sat Aug 27 22:39:37 2011
http://www.uow.edu.au/handbook/yr2011/ug/arts/H11005889.html
我正尝试解析这个网页,目前的进度是可以顺利的加载到WebView上
但由於资料太多太占空间,想截取某部份的资讯
<div id="column-main" class="grid_14"> - </div>的部份
经过咕狗之後发现有个叫NSURLConnection的东西可以处里下载下来的资讯
在- (void)connection:(NSURLConnection *)connection didRecieveData:
(NSData *)data
{ } 里可以处里
----编码问题 已解决---
用了NSLog(@"%@", data)去看里面的data发觉全部都是意义不明的数字
<3c211444f 4354950 45206874.........>一长串
看了网路上的教学文章後发现几个不明之处
http://kelp.phate.org/2011/06/ios-stringwithcontentsofurlnsurlconnect.html
里面的方法是把data放入一个自创的NSMutableData里面
之後在connectionDidFinishLoading用NSString 去initWithData,
但我用这个方式却什麽也读不到,我去NSLog了自创的NSMutableData得到一堆NULL的东西
这代表我appendData失败吗?
於是我又看了它上面写的
NSString *post = @"submit=a &select2=052"; //post 的资料内容
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData
length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init]
autorelease];
[request setURL:[NSURL
URLWithString:@"
http://web.trtc.com.tw/c/TicketALLresult.asp"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded"
forHTTPHeaderField:@"Content-Type"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"Mobile Safari 1.1.3 (iPhone; U; CPU like Mac OS X;
en)" forHTTPHeaderField:@"User-Agent"];
完全看不懂=口="
是因为我没有写好这些分类的东西才无法正常读取网页资料的吗?
如果是的话我该怎麽去判断里面的分类要怎麽写?
还有他setHTTPMethod是用Post,可是第一个范例是用Get,这两个又该如何判断??
我该怎麽写才能正确的显示字串~"~
请指教!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.233.89.220
1F:推 appleway:一堆数字 3c211444f 只是编码格式问题 08/28 01:03
嗯,现在已经可以正确的看到data里的资料,但发现无法正确的加载到webview里
我用NSString *load = [[NSString alloc] initWithData: data encoding:.....];
[webView loadHTMLString:load baseURL:nil];
[self.view addSubview:webView];
结果完全无法正确加载,图片如下
http://a.imageshack.us/img716/7148/picre.png
※ 编辑: yueyajbdt 来自: 220.233.89.220 (08/28 20:08)
2F:推 appleway:无法正确加载是因为baseURL你给了nil。当你抓到html code 08/28 22:10
3F:→ appleway:存成nsdata不会保留url,所以html中"相对"连结通通失效 08/28 22:12
发现一个问题是在didRevieveData里loadData的资料会完全等於data
但是如果把loadData放在DidFinishLoading里的话会发现少了好几个部份,也就是
为什麽我只能显示出那个部份,所以我额外写了一个NSMutableString,
再用appendString load,这样在FinishLoading也可以完整显示
loadHTMLString我是这样写的
[webView loadHTMLString:recievedData(自创的NSMutableString) baseURL[NSURL
fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
这样可以显示出完整的文字,但…图片全部都是X,然後网页文字的颜色也无法读取
变成黑色,排版也稍微乱掉,请问有解吗?
※ 编辑: yueyajbdt 来自: 220.233.89.220 (08/29 19:43)
4F:→ yueyajbdt:自己搞错了,基本上baseURL就把自己存的NSURL丢进去就会 08/29 20:49
5F:→ yueyajbdt:显示正常了 08/29 20:49