2011-04-08 97 views
1

如何從控制檯應用程序或庫中獲取網頁內容?我的意思是,沒有UI元素。目標C:獲取頁面內容

這就是我的意思是在Python

from urllib import urlopen 
str = urlopen("http://www.google.com").read() 

或php

$str = file_get_contents('http://www.google.com'); 

或C#

using System.Net; 
WebClient client = new WebClient(); 
string str = client.DownloadString("http://www.google.com"); 

感謝

+0

3,500個意見,而不是一個投票的問題......聖牛? +1 – 2015-01-23 21:48:14

回答

5

NSURLConnection的是Cocoa使用的類,它的使用是非常簡單的...

首先,你需要創建一個包含你想讀的URL的NSURLRequest的實例...

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.stackoverflow.com"] 

創建一個NSURLConnection的處理您的請求......

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 

注意init方法的第二個參數是一個代表。該委託需要實現以下的一套方法......

connection:didReceiveResponse: 
connection:didReceiveData: 
connection:didFailWithError: 
connectionDidFinishLoading: 

一旦NSURLConnection的初始化的下載將開始。您可以通過向對象發送取消消息來隨時取消它。

一旦有數據被讀取,連接將調用連接:didReceiveData:它的委託傳遞一個NSData實例作爲第二個參數的方法。作爲連接流,你的數據,以便使用NSMutableData的實例來彙總響應這個方法將被調用多次...

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [mutableData appendData data]; 
} 

一旦URL的完整內容已經被讀connectionDidFinishLoading:(NSURLConnection的*)方法被調用。此時釋放連接並使用您的數據。

-1

答案在這裏:

objective c pulling content from website

記得剛加入框架的Webkit

+0

嗨@Pistacchio,我知道這是一個古老的問題,但是:1.您應該使用標記標記爲重複項,並且2.該鏈接不回答原始問題。 – 2016-09-02 06:25:53

1

檢查出NSURLConnection的文檔。這是獲取它的異步方式。如果您不介意阻塞該線程,則還可以在NSString上檢出stringWithContentsOfURL:encoding:error: