Tout d'abord, nous utilisons le code ci-dessous pour que l'API ne fonctionne que sur les appareils mobiles et non sur les navigateurs. "Obtention d'une erreur 404 lorsque la requête est effectuée via Alamofire dans swift3
$iPod = stripos($_SERVER['HTTP_USER_AGENT'], "iPod");
$iPhone = stripos($_SERVER['HTTP_USER_AGENT'], "iPhone");
$iPad = stripos($_SERVER['HTTP_USER_AGENT'], "iPad");
$Android = stripos($_SERVER['HTTP_USER_AGENT'], "Android");
$json_data = json_decode(file_get_contents('php://input'));
if ($json_data) {
$username_1 = $json_data->username;
if ($Android || $iPad || $iPhone || $iPod) {}
En second lieu, les APIs travaillent sur Android (reprise de volée en utilisant) et ios objective-c à l'aide AFNetworking. Mais, maintenant, je suis PORTAGE le projet swift3 et je suis en utilisant « Alamofire » pour les appels réseau .
Méthode :: (Voici comment je fais la demande POST).
let headers : HTTPHeaders = [
"Accept" : "application/json"
]
Alamofire.request("API URL", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers)
.responseJSON{
response in
if let json = response.result.value{
}
Mais, je reçois une erreur 404, que nous obtenons habituellement lorsque nous avons atteint api dans le navigateur Après que j'ai enlevé que vérification backend et la demande a bien fonctionné et eu la bonne réponse. Mais, nous ne pouvons pas supprimer ce contrôle. Alors aidez-moi, si je fais des erreurs avec les en-têtes d'autre chose.
C'est ce que je reçois dans debugPrint (réponse) ::
{ status code: 200, headers {
"Access-Control-Allow-Origin" = "*";
"Cache-Control" = "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 84;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Thu, 14 Sep 2017 17:03:17 GMT";
Expires = "Thu, 19 Nov 1981 08:52:00 GMT";
"Keep-Alive" = "timeout=5";
Pragma = "no-cache";
Server = "Apache/2.4.25";
Vary = "Accept-Encoding,User-Agent";
"X-Powered-By" = "PHP/5.6.31";
} }
[Data]: 80 bytes
[Result]: SUCCESS: {
"is_valid" = 0;
status = 404;
"status_message" = "access denied";
success = 0;
}
Êtes-vous Assurez-vous que l'User-Agent contient un iPod, un iPhone ou un iPad? Lisez ce qu'il semble envoyer: https://github.com/Alamofire/Alamofire/blob/master/README.md#http-headers. En outre, en tant que débogage puisque vous semblez avoir le contrôle sur le serveur, vous pouvez vérifier l'agent utilisateur. – Larme