2016-12-22 16 views
4

Alarmofireライブラリを使用してPOSTリクエストを送信しようとしていますが、要求がパラメータを適切に送信していません。Alamofire要求パラメータが空です

マイコード:

let parameters : Parameters = [ 
    "email": tfLoginEmail.text! as String, 
    "password": tfLoginPassword.text! as String 
] 
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON{ response in 
    //Some code that uses the response 
} 

パラメータ変数は2の数を持っており、両方の値が存在するが、この要求に対する応答は、電子メールおよび/またはパスワードが空であることについてのエラーです。

EDIT: 私のPHP:

/** 
* Account Login 
* url - /login 
* method - POST 
* params - email, password 
*/ 
$app->post('/login', function() use ($app) { 
      // check for required params 
      verifyRequiredParams(array('email', 'password')); 

      // reading post params 
      $email = $app->request()->post('email'); 
      $password = $app->request()->post('password'); 
      $response = array(); 

      $db = new DbHandler(); 
      // check for correct email and password 
      if ($db->checkLogin($email, $password)) { 
       // get the user by email 
       $account = $db->getAccountByEmail($email); 

       if ($account != NULL) { 
        $response["error"] = false; 
        $response['id'] = $account['id']; 
        $response['name'] = $account['name']; 
        $response['email'] = $account['email']; 
       } else { 
        // unknown error occurred 
        $response['error'] = true; 
        $response['message'] = "An error occurred. Please try again"; 
       } 
      } else { 
       // user credentials are wrong 
       $response['error'] = true; 
       $response['message'] = 'Login failed. Incorrect credentials'; 
      } 
      echoRespnse(200, $response); 
     }); 

私は私が間違ってやって知っているように思います。 ありがとうございます。

+0

サーバーコードを追加できますか? –

+0

@ArnaudWurmel確かに、今すぐ –

+0

@ArnaudWurmelここで、あなたはそれを追加しました –

答えて

6

サーバーは、要求本体がJSONではなくURLエンコードされた文字列であることを想定しています。この問題を解決するにはencoding: JSONEncoding.defaultの代わりにencoding: URLEncoding.httpBodyを使用してください。

関連する問題