2016-04-23 10 views
0

Wenn ich eine Anfrage von AlamoFire bekomme, erkennt das Skript in PHP den Parameter weder in POST, GET noch REQUEST Variable.PHP Wamp Server empfängt keine Parameter von AlamoFire Anfrage

Der Code in AlamoFire ist

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) 
      } 
    } 

Und der Code in PHP ist:

$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); 
} 

Dann Reaktion in AlamoFire immer ist die JSON mit Meldung der erforderlichen Feld

An einem Punkt PHP gab mir diesen Fehler: PHP Veraltet: Automatisch $ HTTP_RAW_POST_DATA Popup wird veraltet und wird re sein bewegte sich in einer zukünftigen Version. Um diese Warnung zu vermeiden, setze 'always_populate_raw_post_data' in 'php.ini' auf '-1' und benutze stattdessen den php: // - Eingabestream. in Unknown on line 0

hatte ich die php.ini mit der Option always_populate_raw_post_data auf -1 ändern und erreichen mich in den Zustand, was ich jetzt bin.

Aber wenn die Anfrage-URL wie folgt ist http://192.168.1.108:8080/labor/[email protected]&password=brown1234 der Server den Parameter empfangen. Auch wenn ich die Anfrage unter Verwendung NSURLSession mit den Parametern als Teil des HTTP-Körpers erstelle, erhält der Server sie.

Antwort

0

Woher wissen Sie, dass es es nicht empfängt? Woher weißt du, ob Alomfire es sendet? Verwenden Sie "Echo" sehen, was Alomfire bringt in Ihrem PHP-Skript. Wenn es tatsächlich Json-Werte sind, erinnere dich daran, dass du die JSON-Werte entschlüsseln musst, bevor du sie verwenden oder zuweisen kannst. How to decode 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); 

}