簡體   English   中英

從Swift讀取PHP中的JSON

[英]Read JSON in PHP from Swift

我的php文件讀取JSON數據時遇到問題。 我使用swift將數據發送到服務器。 我對請求進行編碼,當我將其發送為字符串時,一切正常。 我的在PHP中正常工作的String看起來像這樣

id=e61db0&time=Feb 13, 2015因此在被PHP接收時可以正常工作

但是,當我使用字典並對NSData進行編碼時,我的PHP文件無法讀取它。 我解碼了發送的數據,看起來像這樣:

{"id":"e61db0", "time":"Feb 13, 2015"}當被php接收時不起作用

對於我的請求設置標頭,我這樣做:

var imageData = UIImageJPEGRepresentation(ui_image, 0.5)
let base64encoded = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)
var params = ["id": uid, "time": date, "comment": img_com_e, "image": base64encoded]
var request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"    
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
var error: NSError?
        request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: .allZeros, error: &error)
        if let error = error {
            println("\(error.localizedDescription)")
        }
        let dataTask = session.dataTaskWithRequest(request) { data, response, error -> Void in
            let res = response as NSHTTPURLResponse!;
            NSLog("Response code: %ld", res.statusCode);

        if (res.statusCode >= 200 && res.statusCode < 300)
        {
            var responseData:NSString  = NSString(data: data, encoding:NSUTF8StringEncoding)!
            return_val = responseData
            NSLog("Response ==> %@", responseData);
        } else {
            return_val = "bad"
            //println(return_val)
        }

    }

    dataTask.resume()

不知道發生了什么。 我的服務器PHP文件不能識別出它是JSON數據並且不能接受$ _POST ['id']。 我應該以不同的方式設置標題嗎?

您的php代碼在哪里?

如果您發送Content-Type: application/json

您應該閱讀php://input而不是$_POST

嘗試:

$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data["id"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM