2015-10-12 178 views
0

我正在嘗試請求獲取源代碼。Swift:獲取請求獲取源代碼

我試過兩種不同的方法。這兩種工作。

但是這兩種方法不返回相同的源代碼,真正的一個,並通過真實的我的意思是當我與Firefox的網站上。例如,我點擊右鍵並顯示源代碼。

Firefox上的網站的源代碼有更多的信息,我的方法在swift中返回的代碼。

有什麼可以解釋的?

我的代碼:



class RequestApi { 

    func getMCPage() { 

     //propertiesMap = ReadProperties.getProperties() 

     let urlPath = "http://www.memecenter.com" 
     let url: NSURL = NSURL(string: urlPath as String)! 
     let session = NSURLSession.sharedSession() 
     let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in 

      if((error) != nil) { 
       // Si une erreur survient lors de la requête web, l'afficher en console 
       print(error!.localizedDescription) 
      } 

      print("response : \(response)") 
      let strData = NSString(data: data!, encoding: NSUTF8StringEncoding) 
      print(strData!) 

     }) 
     task.resume() 

    } 

    func getMCPage2() { 
     let url:NSURL = NSURL(string: "http://www.memecenter.com")! 
     do { 
      let urlContents = try NSString(contentsOfURL: url, encoding: NSASCIIStringEncoding) 
      print(urlContents) 
     } catch let error as NSError { 
      print(error.localizedDescription) 
     } 
    } 
} 

方法1和2回同樣的事情,這是從網站真正的不同。

THX

+1

網站可能會在服務器端根據標題(如用戶代理或會話cookie)進行不同的呈現,或者它可能具有修改客戶端上的html的JavaScript – Paulw11

+0

問題確實與用戶代理有關嗎?在nsurlconnection或nsurlsession中設置我自己的用戶代理?因爲我不想使用默認的源代碼,所以我需要從這個網址獲得的源代碼是像firefox這樣的隨便的瀏覽器,而不是移動瀏覽器的用戶代理 –

回答

0

正如Paulw11說,那是因爲我的要求是用移動用戶代理一個本網站呈現不同的移動設備上發送。 將用戶代理更改爲常用的webbrowser解決了我的問題。