gpt4 book ai didi

php - 无效的 JSON 需要 Swift iOS

转载 作者:行者123 更新时间:2023-11-30 13:14:24 26 4
gpt4 key购买 nike

我正在开发一个简单的iOS Swift应用程序。我想为我的应用程序制作一个登录屏幕,它将连接到 Wordpress 中现有的用户数据库。 。我找到了一些PHP脚本和Swift代码。

我正在尝试发布用户名和登录名,检查它并返回结果(isUser = true/false 或 1/0)

这是一个 PHP 脚本

<?php
// Read request parameters
$username= $_REQUEST["username"];
$password = $_REQUEST["password"];
// Store values in an array
$returnValue = array("username"=>$username, "password"=>$password);
// Send back request in JSON format
echo json_encode($returnValue);
?>

和一个 Swift 函数

func getPHPJson() {

let urlPath: String = "LINK_TO_PHP_FILE?username=\(user)&password=\(pass)"
let url: NSURL = NSURL(string: urlPath)!
let request1: NSMutableURLRequest = NSMutableURLRequest(URL: url)

request1.HTTPMethod = "GET"
let queue:NSOperationQueue = NSOperationQueue()

NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in

do
{
if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary
{
print(jsonResult)
//print(jsonResult["isUser"] as! Bool)
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("raw response: \(responseString!)")
}
} catch let error as NSError
{
print(error.localizedDescription)
print("error")
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("raw response: \(responseString)")
}
})
}

它给了我想要的结果。

输出

{
password = iosappusettest1;
username = iosappusettest;
}
raw response: {"username":"iosappusettest","password":"iosappusettest1"}

但是当我添加函数来检查用户是否注册时 - 我总是得到一个无效的 JSON

这是 PHP 函数

function authentication ($user, $pass){
global $wp, $wp_rewrite, $wp_the_query, $wp_query;

if(empty($user) || empty($pass)){
return 0;
} else {
require_once('../wp-blog-header.php');
$status = 0;
$auth = wp_authenticate($user, $pass );
if( is_wp_error($auth) ) {
$status = 0;
} else {
$status = 1;
}
return $status;
}
}

我认为问题是require_once功能。在原始响应中,我得到了很多 html标签和其他数据使我的JSON无效。

  • 有没有办法清除JSON中的页面和输出仅有的? echo "<script> document.documentElement.innerHTML = ''; </script>"; PHP 没有帮助我。也许 jQuery 会有帮助?
  • 也许我可以检查用户是否以其他方式注册?
  • 也许我可以将结果存储在单独的位置或临时文件中?
  • 也许我不应该用 JSON 而是用其他东西来包装我的数据?

所以我需要将用户名和密码传递给 PHP,使用身份验证函数(使用 require_once )检查它并将 $status 发送回 iOS Swift应用程序屁股变量。

问题已得到解答。问题出在 WP 插件中,该插件从该域中的所有链接重定向所有未登​​录的用户,所以当我调用 require_once('../wp-blog-header.php'); 时我总是被重定向到主页,这就是带有所有 HTML 标记的 JSON 文件错误的原因。

最佳答案

将您的响应保留为纯 JSON,并省略任何 html 标签,因为您的 ios 端不需要它们。

关于php - 无效的 JSON 需要 Swift iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393080/

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