[英]Invalid JSON require Swift iOS
我正在開發一個簡單的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會有所幫助? 因此,我需要將用戶名和密碼傳遞給PHP,並使用身份驗證功能(使用require_once
)進行檢查,然后將$ status發送回iOS
Swift
應用ass變量。
問題得到了回答。 問題出在WP插件中,該插件重定向了該域中所有鏈接的所有未登錄用戶,因此當我調用require_once('../wp-blog-header.php');
我總是被重定向到主頁,這就是帶有所有HTML標記的JSON文件錯誤的原因。
將響應保持在純JSON中,並保留所有html標記,因為ios端不需要它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.