Swift NSURLSession dataTaskWithRequest completionHandler获取NSZeroData?
我正在尝试从堆栈交换API下载一些XML。但是,我没有得到任何结果。URL在浏览器中访问时会显示XML,但我似乎无法以NSData对象的形式获得它。或者更确切地说,我一直以NSZeroData收场。这是我的代码,请注意,它是用Swift编写的:Swift NSURLSession dataTaskWithRequest completionHandler获取NSZeroData?,swift,nsdata,nsurlsession,swift-playground,stackexchange-api,Swift,Nsdata,Nsurlsession,Swift Playground,Stackexchange Api,我正在尝试从堆栈交换API下载一些XML。但是,我没有得到任何结果。URL在浏览器中访问时会显示XML,但我似乎无法以NSData对象的形式获得它。或者更确切地说,我一直以NSZeroData收场。这是我的代码,请注意,它是用Swift编写的: import UIKit import XCPlayground XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true) var myRequest = NSURLR
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()
尝试:
Diff是协议“http”一个适合我的解决方案 如果您的
customersString
位于NSURL*url=[NSURL URLWithString:customersString]代码>以服务器上的php文件为目标(可能是一个极端情况):
检查您是否在服务器上使用了正确的PHP版本!例如,这可以通过一个新的php文件来完成:
说明:
您的php文件可能无法以正确的方式构建所需的JSON(数组)响应,因为php 5.4版以不同的方式构建数组(比较:):
由于损坏的JSON,这可能会导致NSZeroData响应
因此:在我的服务器上更改PHP版本为我解决了这个问题。希望这有帮助 你找到解决办法了吗?
var myRequest = NSURLRequest(URL:NSURL(string: "http://api.stackexchange.com/answers?site=stackoverflow"))
<?php
//before PHP 5.4
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// since PHP 5.4
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>