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

IGN API Géoportail Discussion :

Problème de proxy et solution proposée


Sujet :

IGN API Géoportail

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut Problème de proxy et solution proposée
    bonjour,

    Cela fait 2 jours que j'essaie de faire fonctionner la recherche de géoportail. J'ai enfin réussi, mais avec un bricolage qui n'est peut être pas correct.

    Je précise que mon niveau en programmation est faible.

    Au début, j'ai téléchargé le proxy php sur le site geoportail, cela ne fonctionnait pas. J'ai cherché sur le forum, effectué plein de manipulations, cherché sur internet, encore des manipulations, téléchargé d'autres proxy php, essayé le proxy perl, essayé avec internet explorer 8, firefox 3.68, opéra 10.61. Rien ne fonctionnait.

    Puis j'ai re téléchargé le proxy php du géoprtail à cette adresse : http://api.ign.fr/geoportail/api/doc.../download.html

    sans changement , sauf de changer son nom en proxyign.php, cela me donne le résultat suivant dans firebug :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    onglet paramètres :
    
    url	http://wxs.ign.fr/geoportail/gazetteer/OpenLSPOST?gppkey=bN79BkyiGiLYNEwKorTkjCXYxZUAAAAAAL8yMwasd2mXEY1yAAABKr1nO0gAAAAAAlgAAQEGzIOB9ekozuF08bkVA6nhR5KjGddUV1qcTzzsicM0AABDNAAAwrQAAEK0AAA
    
    onglet En-têtes :
    
    Réponse
    
    Date	Sun, 29 Aug 2010 10:22:34 GMT
    Server	Apache/2.2.16 (Win32) PHP/5.3.3
    X-Powered-By	PHP/5.3.3
    Connection	close
    Content-Length	3275
    Content-Type	text/xml;charset=UTF-8
    
    
    Requête
    
    Host	127.0.0.1
    User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
    Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip,deflate
    Accept-Charset	UTF-8,*
    Keep-Alive	115
    Connection	keep-alive
    Content-Type	text/xml; charset=UTF-8; charset:UTF-8
    Referer	http://127.0.0.1/randoproxy/geoportalMap_gpx2.php
    Content-Length	344
    Cookie	__utma=96992031.1923226831.1280499289.1280737259.1280920158.9; __utmz=96992031.1280499289.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    
    onglet Post :
    
    XML
    
    <xls:xls xmlns:xls="http://www.opengis.net/xls" version="1.0">
    <xls:requestheader sessionID=""></xls:requestheader>
    <xls:request methodName="GeocodeRequest" version="1.0" requestID="" maximumResponses="100">
    <xls:geocoderequest>
    <xls:address countryCode="FR">
    <xls:freeformaddress>rennes</xls:freeformaddress>
    </xls:address>
    </xls:geocoderequest>
    </xls:request>
    </xls:xls>
    
    Source
    
    <xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.0"><xls:RequestHeader sessionID=""/><xls:Request methodName="GeocodeRequest" version="1.0" requestID="" maximumResponses="100"><xls:GeocodeRequest><xls:Address countryCode="FR"><xls:freeFormAddress>rennes</xls:freeFormAddress></xls:Address></xls:GeocodeRequest></xls:Request></xls:XLS>
    
    onglet reponse :
    
    <br />
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>42</b><br />
    <br />
    <b>Notice</b>:  Undefined index: HTTP_SOAPACTION in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>96</b><br />
    <br />
    <b>Notice</b>:  Undefined index: HTTP_GPPKEY in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>98</b><br />
    <br />
    <b>Notice</b>:  Undefined index: port in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>99</b><br />
    <br />
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>42</b><br />
    <br />
    <b>Notice</b>:  Undefined index: port in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>140</b><br />
    <br />
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>42</b><br />
    <br />
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>42</b><br />
    <br />
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>42</b><br />
    <xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.000000" xmlns:gml="http://www.opengis.net/gml"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/xls /WEBS/ign/interop-gazetteer.ign.fr/docs/lbs_p/gen/data/openls/LocationUtilityService.xsd">
    
      <ResponseHeader xmlns="http://www.opengis.net/xls"/>
    
      <Response xmlns="http://www.opengis.net/xls" requestID="" version="1.0">
        <GeocodeResponse>
          <GeocodeResponseList numberOfGeocodedAddresses="3">
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">48.113497 -1.675699</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Préfecture de région</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">47.767376 0.543562</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Lieu-dit habité</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">44.194058 0.886431</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Lieu-dit habité</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
          </GeocodeResponseList>
        </GeocodeResponse>
      </Response>
    
    </xls:XLS>
    
    onglet xml :
    
    Erreur d'analyse XML : données incompréhensibles après l'élément de document Emplacement : moz-nullprincipal:{97c4d4c5-8ca9-483f-be2b-417ea8b7dae0} Numéro de ligne 2, Colonne 1 :
    
    <b>Notice</b>:  Undefined variable: debug_html in <b>C:\EasyPHP-5.3.3\www\randop...
    ^
    Ensuite j'ai fait les modifications suivantes sur le fichier proxyign.php :

    Ajout en ligne 42 => global $debug_html;
    ligne 97 $SOAPActionH... => #
    ligne 99 $gppKeyH... => #
    ligne 100 modifiée => $Hs= "Host: ".$aUrl['host']."\r\n"
    ligne 108 . (strlen($SOAPActionH)... => #
    ligne 110 . (strlen($gppKeyH)... => #
    ligne 141 $port= $port= $aUrl["port"] ? $aUrl["port"] : 80; => $port= 80;

    Cela fonctionne et firebug retourne maintenant :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    onglet En-têtes :
    
    Réponse
    
    Date	Sun, 29 Aug 2010 12:22:29 GMT
    Server	Apache/2.2.16 (Win32) PHP/5.3.3
    X-Powered-By	PHP/5.3.3
    Connection	close
    Content-Length	2095
    Content-Type	text/xml;charset=UTF-8
    Requête
    
    Host	127.0.0.1
    User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
    Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip,deflate
    Accept-Charset	UTF-8,*
    Keep-Alive	115
    Connection	keep-alive
    Content-Type	text/xml; charset=UTF-8; charset:UTF-8
    Referer	http://127.0.0.1/randoproxy/geoportalMap_gpx2.php
    Content-Length	344
    
    onglet Post :
    
    XML
    
    <xls:xls xmlns:xls="http://www.opengis.net/xls" version="1.0">
    <xls:requestheader sessionID=""></xls:requestheader>
    <xls:request methodName="GeocodeRequest" version="1.0" requestID="" maximumResponses="100">
    <xls:geocoderequest>
    <xls:address countryCode="FR">
    <xls:freeformaddress>rennes</xls:freeformaddress>
    </xls:address>
    </xls:geocoderequest>
    </xls:request>
    </xls:xls>
    
    Source
    
    <xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.0"><xls:RequestHeader sessionID=""/><xls:Request methodName="GeocodeRequest" version="1.0" requestID="" maximumResponses="100"><xls:GeocodeRequest><xls:Address countryCode="FR"><xls:freeFormAddress>rennes</xls:freeFormAddress></xls:Address></xls:GeocodeRequest></xls:Request></xls:XLS>
    Cookie	__utma=96992031.1923226831.1280499289.1280737259.1280920158.9; __utmz=96992031.1280499289.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    
    onglet réponse :
    
    <xls:XLS xmlns:xls="http://www.opengis.net/xls" version="1.000000" xmlns:gml="http://www.opengis.net/gml"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/xls /WEBS/ign/interop-gazetteer.ign.fr/docs/lbs_p/gen/data/openls/LocationUtilityService.xsd">
    
      <ResponseHeader xmlns="http://www.opengis.net/xls"/>
    
      <Response xmlns="http://www.opengis.net/xls" requestID="" version="1.0">
        <GeocodeResponse>
          <GeocodeResponseList numberOfGeocodedAddresses="3">
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">48.113497 -1.675699</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Préfecture de région</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">47.767376 0.543562</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Lieu-dit habité</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
            <GeocodedAddress>
              <Point xmlns="http://www.opengis.net/gml">
                <pos dimension="2">44.194058 0.886431</pos>
              </Point>
              <Address countryCode="BDNYME">
                <StreetAddress>
                  <Street></Street>
                </StreetAddress>
                <Place type="Municipality">rennes</Place>
                <PostalCode>Lieu-dit habité</PostalCode>
              </Address>
              <GeocodeMatchCode accuracy="1" matchType="City"/>
            </GeocodedAddress>
          </GeocodeResponseList>
        </GeocodeResponse>
      </Response>
    
    </xls:XLS>
    
    onglet xml :
    
    <xls:xls xmlns:xls="http://www.opengis.net/xls" version="1.000000" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/xls /WEBS/ign/interop-gazetteer.ign.fr/docs/lbs_p/gen/data/openls/LocationUtilityService.xsd">
    
    
      <responseheader xmlns="http://www.opengis.net/xls">
    </responseheader>
    
    
      <response xmlns="http://www.opengis.net/xls" requestID="" version="1.0">
    
        <geocoderesponse>
    
          <geocoderesponselist numberOfGeocodedAddresses="3">
    
            <geocodedaddress>
    
              <point xmlns="http://www.opengis.net/gml">
    
                <pos dimension="2">48.113497 -1.675699</pos>
    
              </point>
    
              <address countryCode="BDNYME">
    
                <streetaddress>
    
                  <street></street>
    
                </streetaddress>
    
                <place type="Municipality">rennes</place>
    
                <postalcode>Préfecture de région</postalcode>
    
              </address>
    
              <geocodematchcode accuracy="1" matchType="City"></geocodematchcode>
    
            </geocodedaddress>
    
            <geocodedaddress>
    
              <point xmlns="http://www.opengis.net/gml">
    
                <pos dimension="2">47.767376 0.543562</pos>
    
              </point>
    
              <address countryCode="BDNYME">
    
                <streetaddress>
    
                  <street></street>
    
                </streetaddress>
    
                <place type="Municipality">rennes</place>
    
                <postalcode>Lieu-dit habité</postalcode>
    
              </address>
    
              <geocodematchcode accuracy="1" matchType="City"></geocodematchcode>
    
            </geocodedaddress>
    
            <geocodedaddress>
    
              <point xmlns="http://www.opengis.net/gml">
    
                <pos dimension="2">44.194058 0.886431</pos>
    
              </point>
              <address countryCode="BDNYME">
    
                <streetaddress>
    
                  <street></street>
    
                </streetaddress>
    
                <place type="Municipality">rennes</place>
    
                <postalcode>Lieu-dit habité</postalcode>
    
              </address>
    
              <geocodematchcode accuracy="1" matchType="City"></geocodematchcode>
    
            </geocodedaddress>
    
          </geocoderesponselist>
    
        </geocoderesponse>
    
      </response>
    
    
    
    </xls:xls>
    Je suis sous windows 7 64 avec easyphp dernière version, j'ai aussi essayé sur un portable windows xp avec wampserver 2.0i.

    J'aimerai avoir les avis des expert et éventuellement des explications pour comprendre le problème.

    J'ai mis beaucoups de détails ( peut être trop !), mais si vous en voulez d'autres, n'hésitez pas à demander.



    edit :



    Il y a le même problème avec l'ajout de trace gpx à partir d'une adresse internet :

    Ajout de la trace de cette adresse : http://www.parmontsetparvaux.fr/RAND...tuse/trace.gpx

    Résultat avec firebug :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    onglet paramètre :
    
    url	http://www.parmontsetparvaux.fr/RANDOS/100328_Autour_de_Peyrepertuse/trace.gpx
    
    onglet En-têtes :
    
    Réponse
    
    Date	Sun, 29 Aug 2010 13:20:23 GMT
    Server	Apache/2.2.16 (Win32) PHP/5.3.3
    X-Powered-By	PHP/5.3.3
    Last-Modified	Sat, 10 Apr 2010 12:41:04 GMT
    Etag	"1e3486c-112a59-483e139a761a4"
    Accept-Ranges	bytes
    Connection	close
    Content-Length	1124953
    Content-Type	text/plain
    Requête
    
    Host	127.0.0.1
    User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
    Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip,deflate
    Accept-Charset	UTF-8,*
    Keep-Alive	115
    Connection	keep-alive
    Referer	http://127.0.0.1/randoproxy/geoportalMap_gpx2.php
    Cookie	__utma=96992031.1923226831.1280499289.1280737259.1280920158.9; __utmz=96992031.1280499289.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    
    onglet réponse :
    
    <br />
    <b>Notice</b>:  Undefined index: HTTP_PRAGMA in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>91</b><br />
    <br />
    <b>Notice</b>:  Undefined index: HTTP_CACHE_CONTROL in <b>C:\EasyPHP-5.3.3\www\randoproxy\proxyign.php</b> on line <b>92</b><br />
    <?xml version="1.0" encoding="UTF-8" ?>
    <gpx version="1.1" creator="CartoExploreur 3D 1.12" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
        <metadata>
            <time>2010-04-10T11:33:04Z</time>
            <bounds maxlat="42.878623875" maxlon="2.565518590" minlat="42.831776496" minlon="2.407509154" />
        </metadata>
        <trk>
            <name>ACTIVE LOG-F</name>
            <trkseg>
                <trkpt lat="42.861594278" lon="2.565260343">
                    <ele>309.000000</ele>
                    <time>2010-03-27T10:40:14Z</time>
                </trkpt>
                <trkpt lat="42.861594278" lon="2.565260176">
                    <ele>309.000000</ele>
                    <time>2010-03-27T10:40:15Z</time>
                </trkpt>
                <trkpt lat="42.861594195" lon="2.565260092">
                    <ele>313.000000</ele>
                    <time>2010-03-27T10:40:17Z</time>
    ...
    
    ...
    
    	    <trkpt lat="42.861660998" lon="2.565251207">
                    <ele>348.000000</ele>
                    <time>2010-03-28T17:40:09Z</time>
                </trkpt>
                <trkpt lat="42.861660244" lon="2.565250536">
                    <ele>348.000000</ele>
                    <time>2010-03-28T17:41:59Z</time>
                </trkpt>
            </trkseg>
        </trk>
    </gpx>
    J'ai modifié 4 lignes dans le fichier du proxy (le même que tout à l'heure) :

    ligne 91 $pragmaH= $_SERVER['HTTP_PRAGMA']; => #
    ligne 92 $cacheControlH= $_SERVER['HTTP_CACHE_CONTROL']; => #
    ligne 102 . (strlen($pragmaH)>0? "Pragma: ".$pragmaH."\r\n" : "")
    => #
    ligne 103 . (strlen($cacheControlH)>0? "Cache-Control: ".$cacheControlH."\r\n" : "") => #

    Cela donne avec firebug :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    onglet En-tête :
    
    Réponse
    
    Date	Sun, 29 Aug 2010 13:27:33 GMT
    Server	Apache/2.2.16 (Win32) PHP/5.3.3
    X-Powered-By	PHP/5.3.3
    Last-Modified	Sat, 10 Apr 2010 12:41:04 GMT
    Etag	"1e3486c-112a59-483e139a761a4"
    Accept-Ranges	bytes
    Connection	close
    Content-Length	1124953
    Content-Type	text/plain
    Requête
    
    Host	127.0.0.1
    User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
    Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip,deflate
    Accept-Charset	UTF-8,*
    Keep-Alive	115
    Connection	keep-alive
    Referer	http://127.0.0.1/randoproxy/geoportalMap_gpx2.php
    Cookie	__utma=96992031.1923226831.1280499289.1280737259.1280920158.9; __utmz=96992031.1280499289.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    
    onglet Réponse :
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <gpx version="1.1" creator="CartoExploreur 3D 1.12" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.topografix.com/GPX/1/1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
        <metadata>
            <time>2010-04-10T11:33:04Z</time>
            <bounds maxlat="42.878623875" maxlon="2.565518590" minlat="42.831776496" minlon="2.407509154" />
        </metadata>
        <trk>
            <name>ACTIVE LOG-F</name>
            <trkseg>
                <trkpt lat="42.861594278" lon="2.565260343">
                    <ele>309.000000</ele>
                    <time>2010-03-27T10:40:14Z</time>
                </trkpt>
    ...
    ...
    
    	    <trkpt lat="42.861660244" lon="2.565250536">
                    <ele>348.000000</ele>
                    <time>2010-03-28T17:41:59Z</time>
                </trkpt>
            </trkseg>
        </trk>
    </gpx>
    
    onglet cache :
    
    Last Modified	Sun Aug 29 2010 15:27:39 GMT+0200
    Last Fetched	Sun Aug 29 2010 15:27:40 GMT+0200
    Expires	Sun Sep 12 2010 17:56:09 GMT+0200
    Data Size	1124953
    Fetch Count	4
    Device	disk
    Après ces modification tout fonctionne recherche de lieux et ajout de traces.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut php.ini
    Je suis coupable pour l'erreur "global"!
    Je tourne avec un php.ini contenant les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    display_errors = Off
    log_errors = On
    error_log = "error.log"
    et je n'ai pas été voir les logs...
    Les lignes commentées provoquent probablement aussi des erreurs qui s'affichent dans le flux gpx par exemple.
    Donc le "display_errors = Off" peut tout solutionner, enfin cacher la misère!

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Je suis coupable pour l'erreur "global"!
    Je tourne avec un php.ini contenant les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    display_errors = Off
    log_errors = On
    error_log = "error.log"
    et je n'ai pas été voir les logs...
    Les lignes commentées provoquent probablement aussi des erreurs qui s'affichent dans le flux gpx par exemple.
    Donc le "display_errors = Off" peut tout solutionner, enfin cacher la misère!
    Il faudrait reposter le proxy PHP en entier sur le forum pour que tout le monde puisse en profiter ?

    Sur ce proxy (j'en profite) il faudrait qu'il soit plus performant (j'ai fais un test entre le PHP et le Perl) et les temps sont 10 fois plus long avec le PHP qu'avec le Perl. Je pense que c'est l'ouverture de la socket et son décodage qui sont les plus longs dans le process, mais j'ai pas beaucoup de temps en ce moment pour auditer le code ...
    De l'aide de la communauté serait bienvenue

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut
    Voici le code du proxy avec les modifications que j'ai effectuées et qui fonctionne chez moi.

    Mais il reste toujours a savoir s'il est correct.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    <?php
    // proxy http
    // auteur: Marc Gauthier
    // 02/09/2009
    // les erreurs dans les log du serveur
    // http://www.papygeek.com/download/53/
    // Transfer-Encoding: chunked
    //
    // Didier Richard - IGN - dérivation pour publication
    // (c) IGN 2010
    // License : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
    
        // ----------------------------------------------------------
        // global variables :
        $debug= 1;
        $debug_html= 0;
        $sUrl= '';
        $sReponse= '';
        // via un proxy d'entreprise/IP
        $proxy_host= '';
        $proxy_port= 80;
        $content_types= array(
            'application/vnd.google-earth.kml+xml',
            'application/vnd.google-earth.kml',
            //'application/vnd.google-earth.kmz', # TODO needs to unzip response ...
            'application/vnd.ogc.se_xml',
            'application/vnd.ogc.wms_xml',
            'application/vnd.ogc.wfs_xml',
            'application/vnd.ogc.gml',
            'application/soap+xml',
            'application/xml',
            'text/xml',
            'text/plain',
            'text/html');
        // ----------------------------------------------------------
    
        //
        // écriture d'un message de log
        function carp($msg) {
            global $debug;
    		global $debug_html;
            if ($debug) {
                if ($debug_html) {
                    print "__FILE__.:$msg.<br>\n";
                }
                error_log(__FILE__.": $msg", 0);
            }
        }
    
        //
        // écriture d'un message de log et erreur http
        function confess($msg) {
            carp($msg);
            header("HTTP/1.0 500 $msg");
            exit;
        }
    
        //
        // mode chunk
        function unchunk($result) {
            return preg_replace_callback(
                '/(?:(?:\r\n|\n)|^)([0-9A-F]+)(?:\r\n|\n){1,2}(.*?)'.
                '((?:\r\n|\n)(?:[0-9A-F]+(?:\r\n|\n))|$)/si',
                create_function(
                    '$matches',
                    'return hexdec($matches[1]) == strlen($matches[2]) ? $matches[2] : $matches[0];'
                ),
                $result
            );
        }
    
        //
        // la fonction proxy
        // 2 grandes étapes:
        // - émission de la requête
        // - réception de la réponse
        function proxy($sUrl) {
            global $proxy_host, $proxy_port, $chunked, $content_types;
            //
            // analyse de l'url et construction de la requête
            $sUrl= urldecode($sUrl);
            $referrer= $_SERVER["HTTP_REFERER"];
            $userAgent= $_SERVER["HTTP_USER_AGENT"];
            $aUrl= @parse_url($sUrl);
            if (!isset($aUrl['scheme'])) {
                //try absolute and relative path:
                confess("proxy scheme missing");
            }
            // construction de la requete
            $acceptH= $_SERVER['HTTP_ACCEPT'];
            #$pragmaH= $_SERVER['HTTP_PRAGMA'];
            #$cacheControlH= $_SERVER['HTTP_CACHE_CONTROL'];
            $acceptLanguageH= $_SERVER['HTTP_ACCEPT_CHARSET'];
            $keepAliveH= $_SERVER['HTTP_KEEP_ALIVE'];
            #$acceptEncodingH= $_SERVER['HTTP_ACCEPT_ENCODING'];//TODO decompression
            #$connectionH= $_SERVER['HTTP_CONNECTION'];
            #$SOAPActionH= $_SERVER['HTTP_SOAPACTION'];
            $acceptCharsetH= $_SERVER['HTTP_ACCEPT_CHARSET'];
            #$gppKeyH= $_SERVER['HTTP_GPPKEY'];#if gppKey in HTTP Header
            $Hs= "Host: ".$aUrl['host']."\r\n"//.($aUrl['port']? ":".$aUrl['port'] : "")."\r\n"
                . (strlen($acceptH)>0? "Accept: ".$acceptH : join(",", $content_types))."\r\n"
                #. (strlen($pragmaH)>0? "Pragma: ".$pragmaH."\r\n" : "")
                #. (strlen($cacheControlH)>0? "Cache-Control: ".$cacheControlH."\r\n" : "")
                . (strlen($acceptLanguageH)>0? "Accept-Language: ".$acceptLanguageH."\r\n" : "")
                . (strlen($keepAliveH)>0? "Keep-Alive: ".$keepAliveH."\r\n" : "")
                #. (strlen($acceptEncodingH)>0? "Accept-Encoding: ".$acceptEncodingH."\r\n" : "")
                #. (strlen($connectionH)>0? "Connection: ".$connectionH."\r\n" : "")
                #. (strlen($SOAPActionH)>0? "SOAPAction: ".$SOAPActionH."\r\n" : "")
                . (strlen($acceptCharsetH)>0? "Accept-Charset: ".$acceptCharsetH."\r\n" : "")
                #. (strlen($gppKeyH)>0? "gppkey: ".$gppKeyH."\r\n" : "")
                . (strlen($referrer)>0? "Referer: ".$referrer."\r\n" : "")
                . (strlen($userAgent)>0? "User-Agent: ".$userAgent."\r\n" : "")
                ;
            carp($Hs);
            if ($_SERVER["REQUEST_METHOD"]==='GET') {
                $sReq= "GET $sUrl HTTP/1.0\r\n"
                     . $Hs
                     ;
            } else {
                if ($_SERVER["REQUEST_METHOD"]==='POST') {
                    $data= '';
                    if (count($_POST)){
                        while (list($key, $val)= each($_POST)){
                            $data.="$key : $val\n";
                        }
                    } else {
                        $data= trim(file_get_contents('php://input'));
                    }
                    $sReq= "POST $sUrl HTTP/1.0\r\n"
                         . $Hs
                         . "Content-Type: text/xml\r\n"
                         . "Content-length: ".strlen($data)."\r\n"
                         . "\r\n"
                         . $data
                         ;
                }
            }
            $sReq.= "\r\n";
            if (empty($proxy_host)) {
                $host= $aUrl["host"];
                $port= 80;//$port= $aUrl["port"] ? $aUrl["port"] : 80;
            } else {
                $host= $proxy_host;
                $port= $proxy_port;
            }
            // envoi de la requête
            carp("host:$host port:$port url:$sUrl");
            $fp= @fsockopen($host, $port, $errno, $errstr, 5);
            if (!$fp) {
                confess("fsockopen failed: $errstr ($errno)");
            }
            carp("sReq:$sReq");
            fwrite($fp, $sReq);
            // attente de la réponse
            $headers= '';
            $sReponse= '';
            ob_start();
            while (!feof($fp)) {
                $sReponse.= fread($fp, 4096);
            }
            fclose ($fp);
            $eoh= strpos($sReponse, "\r\n\r\n");
            $headers= substr($sReponse, 0, $eoh);
            $sReponse= substr($sReponse, $eoh+4);
            $Hs= preg_split('/(?:\r\n|\n)/', $headers);
            carp("Hs=[".count($Hs)."]");
            for ($i= 0, $l= count($Hs); $i<$l; $i++) {
                if (preg_match('/^Content-Length/i', $Hs[$i])) {
                    continue;
                }
                if (preg_match('/^Transfer-Encoding: chunked/i', $Hs[$i])) {
                    // Transfer-Encoding: chunked
                    carp("chunked response");
                    $sReponse= unchunck($sReponse);
                    continue;
                }
                #carp("header=[$Hs[$i]]");
                header($Hs[$i]);
            }
            header("Content-Length: ".strlen($sReponse));
            print $sReponse;
        }
    
        // ----------------------------------------------------------
        // programme principal:
        // on accept que GET/POST (pour l'instant)
        if (($_SERVER["REQUEST_METHOD"]==='GET' or $_SERVER["REQUEST_METHOD"]==='POST') &&
            (isset($_REQUEST["url"]) && strlen($_REQUEST["url"])>0)) {
            $sUrl= substr($_SERVER["QUERY_STRING"],4);
            carp("Proxying:$sUrl");
            proxy($sUrl);
            exit;
        }
        // on ne traite pas la demande :
        carp("REQUEST_METHOD:".$_SERVER["REQUEST_METHOD"]." QUERY_STRING:".$_SERVER["QUERY_STRING"] );
        if ($debug) {
            phpinfo(INFO_VARIABLES);
        }
        exit;
        // ----------------------------------------------------------
    ?>

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par trukker Voir le message
    Voici le code du proxy avec les modifications que j'ai effectuées et qui fonctionne chez moi.

    Mais il reste toujours a savoir s'il est correct.

    A priori tes modifications sont correctes car tu as bien rajouté la déclaration global sur debug_html et commenté les en-têtes ne servant à rien...

    Je pense d'ailleurs qu'il faudrait écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $enteteH= isset($_SERVER['ENTETE'])? $_SERVER['ENTETE'] : "";
    D'ailleurs, HTTP_GPPKEY doit être remplacé par gppkey en minuscules tout court !

    Sur la ligne 141 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $port= 80;//$port= $aUrl["port"] ? $aUrl["port"] : 80;
    je pense que l'ancienne version était fonctionnelle presque fonctionnelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $port= isset($aUrl["port"]) && !empty($aUrl["port"]) ? $aUrl["port"] : 80;
    Peux-tu essayer ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut
    Voici une version avec les modifications suggérées:

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    <?php
    // proxy http
    // auteur: Marc Gauthier
    // 02/09/2009
    // les erreurs dans les log du serveur
    // http://www.papygeek.com/download/53/
    // Transfer-Encoding: chunked
    //
    // Didier Richard - IGN - dérivation pour publication
    // (c) IGN 2010
    // License : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
    
        // ----------------------------------------------------------
        // global variables :
        $debug= 1;
        $debug_html= 0;
        $sUrl= '';
        $sReponse= '';
        // via un proxy d'entreprise/IP
        $proxy_host= '';
        $proxy_port= 80;
        $content_types= array(
            'application/vnd.google-earth.kml+xml',
            'application/vnd.google-earth.kml',
            //'application/vnd.google-earth.kmz', # TODO needs to unzip response ...
            'application/vnd.ogc.se_xml',
            'application/vnd.ogc.wms_xml',
            'application/vnd.ogc.wfs_xml',
            'application/vnd.ogc.gml',
            'application/soap+xml',
            'application/xml',
            'text/xml',
            'text/plain',
            'text/html');
        // ----------------------------------------------------------
    
        //
        // écriture d'un message de log
        function carp($msg) {
            global $debug;
    		global $debug_html;
            if ($debug) {
                if ($debug_html) {
                    print "__FILE__.:$msg.<br>\n";
                }
                error_log(__FILE__.": $msg", 0);
            }
        }
    
        //
        // écriture d'un message de log et erreur http
        function confess($msg) {
            carp($msg);
            header("HTTP/1.0 500 $msg");
            exit;
        }
    
        //
        // mode chunk
        function unchunk($result) {
            return preg_replace_callback(
                '/(?:(?:\r\n|\n)|^)([0-9A-F]+)(?:\r\n|\n){1,2}(.*?)'.
                '((?:\r\n|\n)(?:[0-9A-F]+(?:\r\n|\n))|$)/si',
                create_function(
                    '$matches',
                    'return hexdec($matches[1]) == strlen($matches[2]) ? $matches[2] : $matches[0];'
                ),
                $result
            );
        }
    
        //
        // la fonction proxy
        // 2 grandes étapes:
        // - émission de la requête
        // - réception de la réponse
        function proxy($sUrl) {
            global $proxy_host, $proxy_port, $chunked, $content_types;
            //
            // analyse de l'url et construction de la requête
            $sUrl= urldecode($sUrl);
            $referrer= $_SERVER["HTTP_REFERER"];
            $userAgent= $_SERVER["HTTP_USER_AGENT"];
            $aUrl= @parse_url($sUrl);
            if (!isset($aUrl['scheme'])) {
                //try absolute and relative path:
                confess("proxy scheme missing");
            }
            // construction de la requete
    		$acceptH= isset($_SERVER['HTTP_ACCEPT'])? $_SERVER['HTTP_ACCEPT'] : "";
    		$pragmaH= isset($_SERVER['HTTP_PRAGMA'])? $_SERVER['HTTP_PRAGMA'] : "";
    		$cacheControlH= isset($_SERVER['HTTP_CACHE_CONTROL'])? $_SERVER['HTTP_CACHE_CONTROL'] : "";
    		$acceptLanguageH= isset($_SERVER['HTTP_ACCEPT_CHARSET'])? $_SERVER['HTTP_ACCEPT_CHARSET'] : "";
    		$keepAliveH= isset($_SERVER['HTTP_KEEP_ALIVE'])? $_SERVER['HTTP_KEEP_ALIVE'] : "";
    		$acceptEncodingH= isset($_SERVER['HTTP_ACCEPT_ENCODING'])? $_SERVER['HTTP_ACCEPT_ENCODING'] : "";
    		$connectionH= isset($_SERVER['HTTP_CONNECTION'])? $_SERVER['HTTP_CONNECTION'] : "";
    		$SOAPActionH= isset($_SERVER['HTTP_SOAPACTION'])? $_SERVER['HTTP_SOAPACTION'] : "";
    		$acceptCharsetH= isset($_SERVER['HTTP_ACCEPT_CHARSET'])? $_SERVER['HTTP_ACCEPT_CHARSET'] : "";
    		$gppKeyH= isset($_SERVER['gppkey'])? $_SERVER['gppkey'] : "";
            $Hs= "Host: ".$aUrl['host']."\r\n"//.($aUrl['port']? ":".$aUrl['port'] : "")."\r\n"
                . (strlen($acceptH)>0? "Accept: ".$acceptH : join(",", $content_types))."\r\n"
                . (strlen($pragmaH)>0? "Pragma: ".$pragmaH."\r\n" : "")
                . (strlen($cacheControlH)>0? "Cache-Control: ".$cacheControlH."\r\n" : "")
                . (strlen($acceptLanguageH)>0? "Accept-Language: ".$acceptLanguageH."\r\n" : "")
                . (strlen($keepAliveH)>0? "Keep-Alive: ".$keepAliveH."\r\n" : "")
                . (strlen($acceptEncodingH)>0? "Accept-Encoding: ".$acceptEncodingH."\r\n" : "")
                . (strlen($connectionH)>0? "Connection: ".$connectionH."\r\n" : "")
                . (strlen($SOAPActionH)>0? "SOAPAction: ".$SOAPActionH."\r\n" : "")
                . (strlen($acceptCharsetH)>0? "Accept-Charset: ".$acceptCharsetH."\r\n" : "")
                . (strlen($gppKeyH)>0? "gppkey: ".$gppKeyH."\r\n" : "")
                . (strlen($referrer)>0? "Referer: ".$referrer."\r\n" : "")
                . (strlen($userAgent)>0? "User-Agent: ".$userAgent."\r\n" : "")
                ;
            carp($Hs);
            if ($_SERVER["REQUEST_METHOD"]==='GET') {
                $sReq= "GET $sUrl HTTP/1.0\r\n"
                     . $Hs
                     ;
            } else {
                if ($_SERVER["REQUEST_METHOD"]==='POST') {
                    $data= '';
                    if (count($_POST)){
                        while (list($key, $val)= each($_POST)){
                            $data.="$key : $val\n";
                        }
                    } else {
                        $data= trim(file_get_contents('php://input'));
                    }
                    $sReq= "POST $sUrl HTTP/1.0\r\n"
                         . $Hs
                         . "Content-Type: text/xml\r\n"
                         . "Content-length: ".strlen($data)."\r\n"
                         . "\r\n"
                         . $data
                         ;
                }
            }
            $sReq.= "\r\n";
            if (empty($proxy_host)) {
                $host= $aUrl["host"];
    			$port= isset($aUrl["port"]) && !empty($aUrl["port"]) ? $aUrl["port"] : 80;
                } else {
                $host= $proxy_host;
                $port= $proxy_port;
            }
            // envoi de la requête
            carp("host:$host port:$port url:$sUrl");
            $fp= @fsockopen($host, $port, $errno, $errstr, 5);
            if (!$fp) {
                confess("fsockopen failed: $errstr ($errno)");
            }
            carp("sReq:$sReq");
            fwrite($fp, $sReq);
            // attente de la réponse
            $headers= '';
            $sReponse= '';
            ob_start();
            while (!feof($fp)) {
                $sReponse.= fread($fp, 4096);
            }
            fclose ($fp);
            $eoh= strpos($sReponse, "\r\n\r\n");
            $headers= substr($sReponse, 0, $eoh);
            $sReponse= substr($sReponse, $eoh+4);
            $Hs= preg_split('/(?:\r\n|\n)/', $headers);
            carp("Hs=[".count($Hs)."]");
            for ($i= 0, $l= count($Hs); $i<$l; $i++) {
                if (preg_match('/^Content-Length/i', $Hs[$i])) {
                    continue;
                }
                if (preg_match('/^Transfer-Encoding: chunked/i', $Hs[$i])) {
                    // Transfer-Encoding: chunked
                    carp("chunked response");
                    $sReponse= unchunck($sReponse);
                    continue;
                }
                #carp("header=[$Hs[$i]]");
                header($Hs[$i]);
            }
            header("Content-Length: ".strlen($sReponse));
            print $sReponse;
        }
    
        // ----------------------------------------------------------
        // programme principal:
        // on accept que GET/POST (pour l'instant)
        if (($_SERVER["REQUEST_METHOD"]==='GET' or $_SERVER["REQUEST_METHOD"]==='POST') &&
            (isset($_REQUEST["url"]) && strlen($_REQUEST["url"])>0)) {
            $sUrl= substr($_SERVER["QUERY_STRING"],4);
            carp("Proxying:$sUrl");
            proxy($sUrl);
            exit;
        }
        // on ne traite pas la demande :
        carp("REQUEST_METHOD:".$_SERVER["REQUEST_METHOD"]." QUERY_STRING:".$_SERVER["QUERY_STRING"] );
        if ($debug) {
            phpinfo(INFO_VARIABLES);
        }
        exit;
        // ----------------------------------------------------------
    ?>
    Cela fonctionne mais au niveau vitesse c'est catastrophique : 15.13s pour une recherche de nom contre 201ms avec la version précédente.
    Sans doute les test prennent énormément de temps. Est-ce que les variables désactivées dans la version rapide sont indispensables , vu que le proxy fonctionne sans.

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par trukker Voir le message
    Cela fonctionne mais au niveau vitesse c'est catastrophique : 15.13s pour une recherche de nom contre 201ms avec la version précédente.
    Sans doute les test prennent énormément de temps. Est-ce que les variables désactivées dans la version rapide sont indispensables , vu que le proxy fonctionne sans.
    Perso, j'y crois pas, mais fais toujours le test ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut
    Justement, j'ai testé avec les variables : $pragmaH, $cacheControlH, $acceptEncodingH, $connectionH, $SOAPActionH, $gppKeyH désactivées, le proxy fonctionne, il est même très rapide.

    Edit :

    voir fichier posté à 12h59.

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par trukker Voir le message
    Justement, j'ai testé avec les variables : $pragmaH, $cacheControlH, $acceptEncodingH, $connectionH, $SOAPActionH, $gppKeyH désactivées, le proxy fonctionne, il est même très rapide.

    Edit :

    voir fichier posté à 12h59.
    Mouai, 6 variables, un facteur 75 entre les deux tests, soit un coût de 12,5 par test, j'y crois toujours pas ... Mais, si cela fonctionne pour toi, c'est

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Gestion des erreurs et perfomances ?
    Je viens de tester dans plusieurs contextes et je n'ai aucun problème de performances même avec un fichier de log
    - windows xp + xampp
    - debian + apache 2 + php 5
    - freebsd 8.1 + nginx + php 5
    J'utilise la version de base avant ajouts par Didier.
    Mais sur cette dernière, j'ai les mêmes résultats sous xampp.

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    J'utilise la version de base avant ajouts par Didier.
    Mais sur cette dernière, j'ai les mêmes résultats sous xampp.
    aucun problème de performance dans tout les cas, est-ce bien cela qu'il faut comprendre ?

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Oui
    Sur l'ensemble de mes plateformes, le proxy ne ralentit pas!

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Sur l'ensemble de mes plateformes, le proxy ne ralentit pas!
    A tu testé la version modifié avec les :

    $enteteH= isset($_SERVER['ENTETE'])? $_SERVER['ENTETE'] : "";

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Le code que j'utilise est celui qui m'a permit de faire fonctionner l'API sur free.fr.
    Je n'ai pas essayé de le rendre plus transparent et donc je ne traite pas la majorité des balises $_SERVER.
    Comme je fais des tests en mode "ligne de commandes" avec curl, la majorité des balises n'est pas présente: donc le code n'est pas réellement testé.

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 177
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par mga_geo Voir le message
    Le code que j'utilise est celui qui m'a permit de faire fonctionner l'API sur free.fr.
    Je n'ai pas essayé de le rendre plus transparent et donc je ne traite pas la majorité des balises $_SERVER.
    Comme je fais des tests en mode "ligne de commandes" avec curl, la majorité des balises n'est pas présente: donc le code n'est pas réellement testé.
    Dans ce cas il serai intéressant de connaitre les balises présentes, si c'est possible.

  16. #16
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut Bof ...
    Avoir un proxy qui satisfait mon besoin me suffit, en voulant faire mieux, on introduit souvent des erreurs.

Discussions similaires

  1. Problème de Proxy
    Par FrankOVD dans le forum Apache
    Réponses: 1
    Dernier message: 21/09/2007, 16h10
  2. Problèmes sur Vista et solutions
    Par Immobilis dans le forum ASP
    Réponses: 0
    Dernier message: 31/05/2007, 21h37
  3. [C#]Problème timeout proxy
    Par mimibobo dans le forum Services Web
    Réponses: 9
    Dernier message: 30/10/2006, 10h27
  4. Problème de proxy avec Firefox
    Par shukin dans le forum Autres langages pour le Web
    Réponses: 3
    Dernier message: 13/12/2005, 13h10

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