Routes.php:458 at route stage
get
route
negotiate
message
[/code]
J’ai bien sûr vérifié et mon url, et mon login, et mon mot de passe, mais rien n’y fait. Que ce soit en http ou en https. Cela pourrait-il venir de mon serveur ?
Merci d’avance pour votre aide
Je me réponds. Sur un autre dolibarr, en utilsant l’explorer, j’arrive bien à obtenir un token.
D’ailleurs, on peut aussi obtenir un token depuis utilisateur / modifier / clé API
Bref, pour un autre dolibarr ça fonctionne.
Par contre sur le dolibarr en question, ça ne marche toujours pas. D’ailleurs lorsque j’essaie de passer par l’explorer d’api, je n’ai qu’une page blanche avec un header vert, et je n’ai pas les liens GET / POST vers /login/
C’est bien embêtant…qui aurait une idée de l’origine du problème ?
Merci d’avance pour votre aide
Hum…J’ai bien l’impression que ça vient de l’hébergeur et du serveur. Je suis chez o2swicht sur différents mutualisés et en fait j’ai plusieurs dolibarr qui réagissent comme cela. L’installation qui fonctionne est sur un autre hébergement.
Avec cette hypothèse supplémentaire, quelqu’un a-t-il une idée de l’origine de cela ? Que devrais-je vérifier avec le support ?
Merci d’avance pour votre aide
Dans le fichier htdocs/api/class/api.class.php essaie de remplacer la lige
$this-\>r-\>setBaseUrls(...
par les 3 suivantes:
$urlwithouturlrootautodetect=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim(DOL_MAIN_URL_ROOT));
$urlwithrootautodetect=$urlwithouturlroot.DOL_URL_ROOT; // This is to use local domain autodetected by dolibarr from url
$this-\>r-\>setBaseUrls($urlwithouturlroot, $urlwithouturlrootautodetect);
Dans l’intervalle, je suis passé sur une 6.02 qui intègre déjà apparemment les corrections que tu me proposes, mais ce n’est pas mieux…
J’ai par contre dans api/error_log le warning suivant :
[18-Oct-2017 16:00:20 UTC] PHP Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‹ UTC › for now, but please set date.timezone to select your timezone. in /home/cpie54/public_html/gestion/includes/restler/framework/Luracast/Restler/PassThrough.php on line 80
Est-ce que ça pourrait être à l’origine de cela ?
Merci d’avance pour ton aide
Cela ne fait pas de mal de corriger ce probleme pour en etre sur.
Il faut en effet compléter la configuration de php pour renseigner le parametre
date.timezone
Par exemple avec la valeur « UTC » ou « Europe/Paris ».
Sinon, essayer aussi avec la 6.0.3 mais de mémoire, les corrections des pb connus sur REST API sont en 6.0.2
Non je n’ai plus rien sur les logs et j’ai fait la MAJ sur la 6.03 sans plus de succès…je deviens chèvre…
Une autre idée ? une autre piste ?
Merci d’avance
je viens de déménager tout le dolibarr sur un autre serveur. Je suis passé d’un mutualisé chez o2switch à un vps chz o2switch et sur le vps tout fonctionne bien…je pense qu’il y a un firewall ou quelque chose comme cela qui bloque l’api sur les mutualisés… je vais voir avec le support
Bonjour à tous,
Je continue le post tout seul, mais ça pourra peut être en aider d’autres.
Au final c’est le mode de php du serveur qui posait problème.
il a fallu forcé l’utilisation de PHP 5.6 et changer le mode de gestion de PHP pour forcer phpcgi.
Pour une raison que j’ignore, cela ne semble pas fonctionner avec le mode de gestion classique lsphp (lsapi).
Je précise que suis chez o2switch et que la méthode pour faire cela est détaillée ici https://faq.o2switch.fr/hebergement-mutualise/gestion-web/choisir-version-php-et-php-ini
Bon on perd php7 et cgi va moins vite, mais au moins ça fonctionne
et que le support fait vraiment bien son boulot et se casse la tête pour nous aider.
Bon courage si vous avez un problème similaire
Je suis dans la même config que toi, chez O2switch
J’ai donc repassé ma version php en 5.6.
Mais je n’ai pas un meilleur résultat. Comment forces-tu le phpcgi ? Dans le php.ini ?
De même, tu écrits que tu as vu un warning dans le fichier log api/error.log; où est-ce ?
Concrètement, cette modification fait un traitement différent des requêtes HTTP à deux moments pour permettre leur bonne décomposition puis un bon routage :
On utilise $_SERVER[REQUEST_URI] au lieu de $_SERVER[PHP_SELF] pour déterminer l’URI à décomposer en vue de son routage.
C’est là qu’il y a un élément important (absent de la précédente version) : on fait un explode l’URI pour extraire l’identifiant de la bonne route que l’on réaffecte correctement vers le routeur. Ceci a pour conséquence de rediriger correctement l’appel (on surmonte l’erreur 404) avec les bons paramètres (qui étaient déjà bien identifiés dans la précédente version)
En espérant que ceci puisse aider certains d’entre nous.
Bonjour,
je rencontre le même problème que cité précédemment, j’ai des 404 à chaque fois que j’essaye d’accéder à l’api rest.
j’ai eu beau appliquer vos solutions les unes après les autres, rien n’y fait…
ma particularité, c’est que mon serveur web est nginx donc je ne sais pas pourquoi cela aurait un impact.
merci d’avance de l’aide que vous pourriez m’apporter.