2016-12-22 20 views
0

誰かが次の問題を私に助けてくれますか?PHPのApiエンドポイントでSwiftネットワークコール

idの値を取得できません。

id」は、iOSネットワーク通話から投稿すると常に空です。ネットワーク呼び出しのための

スウィフト3:

var request = URLRequest(url: URL(string: "URL HERE")!) 
     request.httpMethod = "POST" 
     let postString = "id=2" 
     request.httpBody = postString.data(using: .utf8) 

     let task = URLSession.shared.dataTask(with: request) { data, response, error in 
      guard let data = data, error == nil else {             // check for fundamental networking error 
       print("error=\(error)") 
       return 
      } 

      if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {   // check for http errors 
       print("statusCode should be 200, but is \(httpStatus.statusCode)") 
       print("response = \(response)") 
      } 

      let responseString = String(data: data, encoding: .utf8) 
      print("responseString = \(responseString)") 
     } 
     task.resume() 

api.php PHPコードは、サーバー側から値を取得します。

if($_SERVER["REQUEST_METHOD"] == "POST"){ 

    if(isset($_POST["id"]) == 0) { 

     $id = isset($_POST["id"]); 

    } 
} 
+0

まず、print_r($ _ POST)で取得したものを印刷します。それを手に入れますか? –

+0

アレイ ( [ "ID" => "2" ) I値reteriveできないです: $ ID = $ _POST [ 'ID']。 \t \t \t \t echo "値は:"です。 –

答えて

0

問題はPHPコードにあります。 3行目でissetFALSEの場合は、$idの値をidパラメータに設定します。 issetTRUEの場合は、その値になります。

0を1に変更します。これはちょっとした誤字です。

issetが少し間違っている可能性もあります。 issetは、変数に値があるかどうかに関係なく、boolを返します。だから、$id = isset($_POST["id"]);は、値ではなくIDが与えられたかどうかを知らせます。値をissetにしたい場合。

+0

私はissetを落としてみたがまだ空白だった。 –

0

次のコードで値を取得できました。

if($_SERVER["REQUEST_METHOD"] == "POST"){ 

    if(isset($_POST["id"]) == 0) { 
     $arr = array_values($_POST); 
     //print_r($arr); 
     echo "Value is: ".$arr['0']; 
    } 
} 
関連する問題