我正在尝试从Stack Exchange API下载一些XML。但是,我没有得到任何结果。 URL在浏览器中访问时会显示XML,但我似乎无法以NSData对象的形式获取XML。或者更确切地说,我一直在使用NSZeroData。这是我的代码,请注意它是用Swift编写的:
import UIKit
import XCPlayground
XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true)
var myRequest = NSURLRequest(URL:NSURL(string: "api.stackexchange.com/answers?site=stackoverflow"))
var mySession = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration())
var dataTask = mySession.dataTaskWithRequest(myRequest, completionHandler: { (data, response, error) in
var myData = data //myData now equals NSZeroData
})
dataTask.resume()
答案 0 :(得分:0)
尝试:
var myRequest = NSURLRequest(URL:NSURL(string: "http://api.stackexchange.com/answers?site=stackoverflow"))
Diff是协议" http"
答案 1 :(得分:0)
一个对我有用的解决方案,
如果customersString
中的NSURL *url = [NSURL URLWithString: customersString];
定位到您服务器上的 php文件(可能是一个角落):
检查您的服务器上是否使用了正确的PHP版本!例如,这可以使用新的php文件完成:
<?php phpinfo(); ?>
<强>解释强>
你的php文件可能不是以正确的方式构建你想要的JSON(数组)响应,因为php-version 5.4以不同的方式构建数组(比较:Link to PHP.net):
<?php
//before PHP 5.4
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// since PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>
由于JSON损坏,这可能会导致 NSZeroData 响应。
因此:更改服务器上的PHP版本为我解决了这个问题。希望这会有所帮助!!!