Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1242 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  API 404 Not Found

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

API 404 Not Found

n°2358566
preyne69
Posté le 24-07-2020 à 10:43:11  profilanswer
 

Bonjour !
Je me tourne vers vous car là, comme vous vous en doutez, je bloque :??: . Je suis sous Windows 10, Wamp64 3.2, PHP 5.6.4, LARAVEL 5.4 J'ai un module électronique indépendant, connecté à mon wifi, et qui envoie à l'ip de mon ordi un fichier de la manière suivante :  
"POST api/upload_url/WISE-4012E_74FE48486A2D/signal_log/19700101/19700101010557.csv HTTP/1.1"  et j'ai systématiquement un 404 à la vue de l'acceslog de Wamp..
 
Dans mon API, j'ai mis la route suivante dans api.php :
Route::post('/upload_url/{machine}/signal_log/{ttime}', 'ApiWifiController@store');
 
Dans Postman, la requête :  
"POST api/upload_url/WISE-4012E_74FE48486A2D/signal_log/19700101/" en y joignant un fichier fonctionne parfaitement avec mon API et j'upload bien le fichier.
 
La différence avec ces deux requêtes est le nom du fichier qui est présent dans la requête émise par le module et ce doit être à cause de ça que ça bloque.
 
 
Je sèche et ne sais pas comment traiter la requête émise....
Est-ce que quelqu'un aurait une idée ou même ne serait-ce qu'une suggestion où chercher ?
J'espère avoir été clair.
Merci d'avance et bonne journée !
 
Phil

mood
Publicité
Posté le 24-07-2020 à 10:43:11  profilanswer
 

n°2358574
rufo
Pas me confondre avec Lycos!
Posté le 24-07-2020 à 13:40:30  profilanswer
 

En mettant le nom du fichier dans la requête (donc celle qui marche pas si j'ai bien compris), vu qu'il n'existe pas sur le serveur, c'est un peu normal d'avoir un 4004, non, vu que tu veux justement l'envoyer sur ce serveur :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2358575
preyne69
Posté le 24-07-2020 à 14:11:10  profilanswer
 

rufo a écrit :

En mettant le nom du fichier dans la requête (donc celle qui marche pas si j'ai bien compris), vu qu'il n'existe pas sur le serveur, c'est un peu normal d'avoir un 4004, non, vu que tu veux justement l'envoyer sur ce serveur :/


 
Merci pour ta réponse rufo ; alors comment faire ?

n°2358576
rufo
Pas me confondre avec Lycos!
Posté le 24-07-2020 à 14:29:46  profilanswer
 

Ben faut soit modifier le code de ton module si tu y a accès, soit modifier ton API pour virer le nom du fichier si c'est possible, soit mettre des règles de réécriture d'url dans Apache.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2358592
B4X
kebab-case
Posté le 24-07-2020 à 21:49:19  profilanswer
 

Ton problème est en amont, càd au niveau de ton "module électronique indépendant", qui ne POST pas à la bonne adresse. Montre-nous comment ce dernier envoie le fichier.
Ceci n'est pas un endpoint valide : "api/upload_url/WISE-4012E_74FE48486A2D/signal_log/19700101/19700101010557.csv" car il s'agit d'une ressource statique inexistante (d'où le 404).
Tu dois t'assurer que ton "module électronique indépendant" POST à l'adresse suivante : "api/upload_url/*****/signal_log/****/", sans le suffixe "**********.csv".
Commence par ça.
 
Sinon le + simple ce serait de virer tes espèces de route-model bindings qui n'ont aucun sens dans ce contexte.
Remplace ta route dans api.php par ceci :  

Code :
  1. Route::post('upload_url', 'ApiWifiController@store');


 
et dans ton controlleur :  

Code :
  1. public function store(\Illuminate\Http\Request $request)
  2. {
  3.    $machine = $request->post('machine');
  4.    $date = $request->post('ttime');
  5.    $hasFile = $request->hasFile('fichier');
  6.  
  7.    if ($hasFile) {
  8.        dd('ça fonctionne, j\'ai bien reçu le fichier '.$request->file('fichier')->getClientOriginalName());
  9.    } else {
  10.        dd('ça merde.');
  11.    }
  12. }


 
En somme, ton "module électronique indépendant" doit tout envoyer en POST : machine/ttime/fichier. Il faut être consistant, pas envoyer 2 variables en GET et 1 en POST, tu vas te faire des noeuds au cerveau [:b4x:4]


---------------
In vanitas veritas.
n°2358651
preyne69
Posté le 27-07-2020 à 11:28:21  profilanswer
 

Bonjour B4X et merci de ton aide.
 
Le module électronique envoie la requête en post telle que décrite plus haut et je ne peux modifier que le début (upload_url) et l'ip ainsi que le port.
Ma machine étant en 192.168.2.85 port 80, c'est ce que j'ai renseigné.
En ce qui concerne la validité du Endpoint, je suis débutant et j'ai vu dans la doc que c'était comme ça que je devais appeler l'API et ça marche dans Postman. Par contre, je suis d'accord avec toi, c'est plus que bizarre.
Pour info, mon appli est située dans un répertoire lui-même situé dans \www.
 
Pour info, dans api.php, si je ne mets que 'upload_url' j'ai un magnifique 404. Je l'avais déjà testé et c'est pour ça que je mets l'intégralité de la route.
 
Je ne comprends pas ta dernière phrase où tu me parles de variables en GET et en POST.
 
En tous cas, merci du temps que tu m'accordes.
Phil

n°2358675
rufo
Pas me confondre avec Lycos!
Posté le 27-07-2020 à 14:10:13  profilanswer
 

Quand tu passes des paramètres via l'url, c'est du GET. Dans le cas contraire, c'est du POST.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2358889
B4X
kebab-case
Posté le 29-07-2020 à 16:16:45  profilanswer
 

pas de code = pas d'aide.


---------------
In vanitas veritas.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  API 404 Not Found

 

Sujets relatifs
API pour Site Web de copropriétéUtilisation d'API Adobe
API Application google direction[Javascript] CORS et API calls
[résolu] Authentification https avec API GéoportailAPI navigator.geolocation qui ne marche plus avec Firefox 60
Api IMEI AppleQue pensez-vous de ma méthode pour créer une API REST ?
API GoogleMap passée payante ?AmazonPay API
Plus de sujets relatifs à : API 404 Not Found


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR