1

我正在尝试从 Stack Exchange API 下载一些 XML。但是,我没有得到任何结果。在浏览器中访问时,URL 会显示 XML,但我似乎无法以 NSData 对象的形式获得它。或者更确切地说,我一直以 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()
4

2 回答 2

0

尝试:

var myRequest = NSURLRequest(URL:NSURL(string: "http://api.stackexchange.com/answers?site=stackoverflow"))

Diff 是协议“http”

于 2015-03-30T08:10:59.263 回答
0

一种对我有用的解决方案,

如果您customersStringNSURL *url = [NSURL URLWithString: customersString];目标是服务器上的php 文件(可能是极端情况):

检查您是否在服务器上使用了正确的 PHP 版本!这可以 - 例如 - 使用新的 php 文件来完成:

<?php phpinfo(); ?>

解释:

您的 php 文件可能不会以正确的方式构建您想要的 JSON(数组)响应,因为 php-version 5.4 以不同的方式构建数组(比较:链接到 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 版本为我解决了这个问题。希望这可以帮助!!!

于 2016-01-08T13:43:51.377 回答