2016-11-01 28 views
0

我从HTTPS页面检索HTML内容,但对于“简短”内容,我确实正确地得到它。对于“长”的内容,我得到了一个零的答案。XCode swift HTTPS:String(data:data !, encoding:NSUTF8StringEncoding)return nil

我不知道内容长度是否与它有关。

如果找不到报告,我的页面可能会返回一个HTML格式的报表(带有几行的小表格)或“错误”消息。

当错误消息被返回时,它“运行良好” - >我得到了HTML响应,但是当它找到报告时,我得到了一个零的答案。

该报告在HTML浏览器中正常工作。我查了apache日志,答案内容有正确的长度,但Xcode没有答案。

我已经检查了在互联网上发现的“HTTPS nil request”问题。 HTTPS不是问题。代码工作时无需将“允许任意负载”设置为true或添加“例外域”。启用这些选项不能解决问题。

我不知道什么可能会导致这个零请求,而服务器发送它。

let curUsuario=curTuc.nombre 
let urlString = "https://xxxxxx.yyyyy.com/PatientLabDetails5?usuario=\(curUsuario)&pin=\(curnoPin)" 
let url = NSURL(string: urlString) 
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { 
         (data, response, error) in 

print("response: \(response)") 
print("Data: \(data?.length)") 

.... 
}; 
task.resume() 

调试:

response: Optional(<NSHTTPURLResponse: 0x7aea3f30> { URL: https://xxxx.yyyy.com/PatientLabDetails5?usuario=25808&pin=4884938 } { status code: 200, headers { 
    Connection = "Keep-Alive"; 
    "Content-Type" = "text/html;charset=ISO-8859-1"; 
    Date = "Tue, 01 Nov 2016 14:07:29 GMT"; 
    "Keep-Alive" = "timeout=15, max=100"; 
    Server = Apache; 
    "Set-Cookie" = "JSESSIONID=2A38EC49C93927A34AA1C9ED16B5F997; Path=/; Secure; HttpOnly"; 
    "Transfer-Encoding" = Identity; 
    "X-Content-Type-Options" = nosniff; 
    "X-Frame-Options" = SAMEORIGIN; 
    "X-XSS-Protection" = "1; mode=block"; 
} }) 

Data: 6015 

但是,当我试图获取数据,我得到了一个零结果..

print(String(data: data!, encoding: NSUTF8StringEncoding)) 

我显然是同一个Apache设置,测试了3台服务器和完全相同的Web服务器代码。一方面它工作得很好,另一方面不行。像往常一样,工作的人是我不需要使用的人。

我在www.htbridge.com/ssl上检查了SSL证书安装(以防万一)并获得了A +等级。

+0

可能的复制http://stackoverflow.com/questions/32050969/why-my-return-is-nil-but-if-i-按最网址,在铬野生动物园,我可任意获取数据。 - 就你而言,服务器在“charset = ISO-8859-1”响应中发送编码,因此自动检测的机会很大:http://stackoverflow.com/a/32051684/1187415。 –

回答

1

通常做一个回落:中

var strData = NSString(data: data, encoding: NSUTF8StringEncoding) 
if (strData == nil){ 
    //roll back to ASCII ... 
     strData = NSString(data: data, encoding: NSASCIIStringEncoding) 
    } 
+0

绝妙的主意! –

相关问题