gpt4 book ai didi

php - Swift 不从 PHP 服务器解析 JSON

转载 作者:可可西里 更新时间:2023-11-01 01:39:11 28 4
gpt4 key购买 nike

我正在用 swift 为 iOS 编写一个简单的应用程序,它对我的​​服务器进行 ajax 调用。这是相关的快速代码:

class Request : NSObject {
func send(url: String, f: (NSData)-> ()) {
var request = NSURLRequest(URL: NSURL(string: url)!)
var response: NSURLResponse?
var error: NSErrorPointer = nil
var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: error)
//var reply = NSString(data: data!, encoding: NSUTF8StringEncoding)
f(data!)
}
}

class myObj: NSObject {

let baseURL: String
var message: String

init() {
self.baseURL = XXXXXXXXXXXXX
self.message = "No Message"
}

func check() -> Bool {

let locationURL = self.baseURL

self.message = locationURL
var request = Request()
request.send(locationURL, f: {(result: NSData)-> () in
let jsonData: NSData = result
var error: NSError?

let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as! NSDictionary
self.message = jsonDict["title"] as! String
})

return true
}
}

这是我返回虚拟 JSON 的服务器端代码:

<?php
header('Content-Type: application/json; charset=utf-8');
if(isset($_GET['location'])) {
echo json_encode(Array( 'success' => true, 'message' => 'I came from the server.', 'title' => 'tittttt'));
} else if(isset($_POST['message'])) {
echo json_encode(Array( 'success' => true, 'message' => 'message received', 'title' => 'ttt'));
} else {
echo json_encode(Array( 'success' => false, 'message' => 'invalid params', 'title' => 'title from server'));
}
?>

当我将我的 URL 切换为虚拟 json url(我正在使用 http://jsonplaceholder.typicode.com/posts/1?a=b )时,它起作用了;当我使用自己的 URL 时,它失败并出现以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

我在这里做错了什么?

编辑:这是来自服务器的实际 JSON 响应:

{ success: true, message: "I came from the server.", title: "tit-le" }

最佳答案

你试过添加吗 header("Access-Control-Allow-Origin: *");到你的 PHP

关于php - Swift 不从 PHP 服务器解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32163983/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com