IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

erreur 404 avec file_get_contents


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Points : 17
    Points
    17
    Par défaut erreur 404 avec file_get_contents
    Bonjour,
    Je travaille sur solr et j'aimerai faire une requete http pour envoyer mes documents. Mais j'ai cette erreur :
    Warning: file_get_contents(http://localhost:81/solr/testDocument/update): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in C:\wamp\www\test\send.php on line 46
    Mon url fonctionne, mon serveur solr me retourne "missing content stream "



    Mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $url = "http://localhost:81/solr/testDocument/update";
    $data = '<add>
        <doc>
            <field name="idDocument">1</field>
            <field name="titleFr">Le petit poucet</field>     
        </doc>
    	<doc>
            <field name="idDocument">2</field>
            <field name="titleFr">Le petit poucet</field>     
        </doc>
    	<doc>
            <field name="idDocument">3</field>
            <field name="titleFr">Les petits poucets</field>     
        </doc>
    	<doc>
            <field name="idDocument">4</field>
            <field name="titleFr">Le jeune arbre de la savane</field>     
        </doc>
    </add>';
     
    $params = array
    (
        'http' => array (
            'method' => 'POST'
            , 'header' => 'Content-Type: text/xml'
            , 'content' => $data
            , 'timeout' => 5
        )
    );
     
    $context = stream_context_create($params);
    $result = file_get_contents($url, FALSE, $context);
    var_dump($result);
    var_dump($url);
    echo 'done'.PHP_EOL;


    En espérant que vous pouvez m'aider.
    Cordialement,
    Uruca

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Pour faire un POST simple, on met le Content-Type application/x-www-form-urlencoded avec le "content" préservé la forme d'une paire clé-valeur, seulement ici la valeur serait un document xml sérialisé. Supposons la clé soit nommé "xmldata", on peut faire comme ça.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $postcontent = http_build_query(array('xmldata'=>$data));
    $params = array
    (
        'http' => array (
            'method' => 'POST'
            //, 'header' => 'Content-Type: text/xml'
            , 'header'=>'Content-type: application/x-www-form-urlencoded'
            //, 'content' => $data
            , 'content' => $postcontent
            , 'timeout' => 5
        )
    );

    A l'endpoint en serveur, quelque part, on fait un contrôle ordinaire figurativement comme ceci ...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $xmldata=(isset($_POST['xmldata']))?$_POST['xmldata']:null;
    if (!$xmldata) {
        //faire quelque réponse
    } else {
        //faire travailler le xml
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 31
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    Merci de ton aide mais du coup j'ai changé de méthode.
    J'utilise directement la bibliothèque php solr. Qui je pense me sera plus facile à utiliser dans différents cas.
    Mais je rencontre un problème d'encodage, si tu connais une solution, n'hésite pas

    http://www.developpez.net/forums/d15...r-update-solr/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 404 avec file_get_contents ou curl
    Par momogc dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2009, 01h35
  2. [référencement]Erreur 404 avec le crawler de ask.com
    Par PerfectSlayer dans le forum Référencement
    Réponses: 1
    Dernier message: 07/05/2007, 09h12
  3. [PHP-JS] erreur 404 avec menu déroulant
    Par midiweb dans le forum Langage
    Réponses: 5
    Dernier message: 15/02/2007, 15h56
  4. [AJAX] Erreur 404 avec Ajax
    Par GuileIzback dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/01/2007, 11h58
  5. erreur 404 avec apache
    Par pepper18 dans le forum Apache
    Réponses: 4
    Dernier message: 02/11/2006, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo