現在以下のようにパラメーターと共にPOST通信を行なっています。

        let parameters: [String:Any] = [
            "Diary": [
                "ID": diary.id,
                "Title": diary.title,
                "Content": diary.content,
                "XTime": diary.xtime,
                "IsShared": diary.isShare
            ]]

        var request = URLRequest(url: url!)
        request.httpMethod = "POST"
        request.timeoutInterval = 10
        request.httpBody = try! JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
        let task = URLSession.shared.dataTask(with: request) { data, response, error in

そしてPHP側は以下のようになっています。

  $json = file_get_contents('php://input');
  $data = json_decode($json, true);
  var_dump($json);

しかし実際にブラウザには以下のように表示されてしまっています。

string(0) ""

なぜPHP側で値が受け取れていないのでしょうか。
どなたか分かる方がいれば教えていただきたいです。よろしくお願いします。