[問題] NSURLConnection NSString無法正確加載 …
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
推
08/28 01:03, , 1F
08/28 01:03, 1F
嗯,現在已經可以正確的看到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)
推
08/28 22:10, , 2F
08/28 22:10, 2F
→
08/28 22:12, , 3F
08/28 22:12, 3F
發現一個問題是在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)
→
08/29 20:49, , 4F
08/29 20:49, 4F
→
08/29 20:49, , 5F
08/29 20:49, 5F
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章