2015-10-12 130 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解决了我的问题。