簡體   English   中英

PHP Wamp服務器未從AlamoFire請求接收參數

[英]PHP Wamp server not receiving parameters from AlamoFire request

當我收到AlamoFire的請求時,PHP中的腳本無法識別POST,GET或REQUEST變量中的參數。

AlamoFire中的代碼是

let parameters: [String: AnyObject] =
        ["email" : email,
         "password": password]

    Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON)
        .responseJSON { response in

            print(response)

            switch response.result {

            case .Success: // Connection stablished



            case .Failure(let error): //  Connection not stablished
               print(error)
               self.showLoginError(Constants.connectionError)
            }
    }

php中的代碼是:

$response = array();
header('Content-Type: application/json');
if (isset($_POST['email']) && isset($_POST['password'])) {
  ... stuff
}else{
    $response["Failure"] = 1;
    $response["message"] = "Required field(s) is missing";
    echo json_encode($response);
}

然后,AlamoFire中的響應始終是帶有必填字段消息的JSON

有一次,PHP給了我這個錯誤: 不推薦使用PHP:不推薦使用自動填充$ HTTP_RAW_POST_DATA並將在以后的版本中將其刪除。 為避免此警告,請在php.ini中將“ always_populate_raw_post_data”設置為“ -1”,並改用php:// input流。 在第0行的Unknown中

我將使用always_populate_raw_post_data選項的php.ini更改為-1,並使我達到現在的狀態。

但是,如果請求URL像這樣http://192.168.1.108:8080/labor/login.php?email=slicingit@yahoo.com&password=brown1234,則服務器會收到該參數。 同樣,如果我使用帶有參數的NSURLSession作為HTTP主體的一部分創建請求,服務器也會獲取它們。

您怎么知道它沒有收到? 您怎么知道alomfire是否正在發送它? 使用“ echo”查看alomfire在您的php腳本中帶來了什么。 如果確實是json值,請記住您必須先解碼json值,然后才能使用或分配它們。 如何解碼json

 $mymail= ($_POST['email']);
 $mypass= ($_POST['password']);
 echo $mymail;
 echo $mypass;

 //Decode your json first here

 if ($mymail && $mypass) {
     ... stuff
 }else{
 $response["Failure"] = 1;
$response["message"] = "Required field(s) is missing";
echo json_encode($response);

}

暫無
暫無

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

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