dev-server HTTP Fehler 403: Verboten

8

Nach dem Update von 1.7.5 (wo alles gut geklappt hat) bekomme ich einen HTTP Error 403: Forbidden beim Versuch, irgendwelche Seiten über localhost zu öffnen. Seltsame Sache ist, dass ich so ziemlich das gleiche Setup zuhause habe wie hier bei der Arbeit und alles funktioniert dort ... Könnte ein Problem mit Proxy-Server sein, den wir bei der Arbeit benutzen, da das der einzige Unterschied ist, den ich mir vorstellen kann? Hier ist das Fehlerprotokoll, das ich bekomme, also wenn jemand weiß, was los ist, bitte helfe (;

%Vor%

Außerdem gibt der Launcher beim Schließen einen Fehler aus:

%Vor%     
Sasxa 19.04.2013, 10:39
quelle

3 Antworten

4

Ich hatte genau dieses Problem mit meinem MacOSX bei Verwendung eines Proxy-Servers mit Google App Engine Launcher 1.8.6. Anscheinend gibt es ein Problem mit "proxy_bypass" auf "urllib2.py".

Es gibt zwei mögliche Lösungen:

  1. Downgrade auf 1.7.5, aber wer möchte downgraden?
  2. Bearbeiten Sie "[GAE Instalation path] /google/appengine/tools/appengine_rpc.py" und suchen Sie nach der Zeile

    opener.add_handler(fancy_urllib.FancyProxyHandler())

In meinem Computer war es Zeile 578, und dann legte man einen Hash (#) am Anfang der Zeile, wie folgt:

%Vor%

Speichern Sie die Datei, stoppen Sie und starten Sie Ihre Anwendung neu. Jetzt sollte dev_appserver.py nicht versuchen, irgendeinen Proxyserver zu benutzen.

Wenn Ihre Anwendung externe Ressourcen wie einen SOAP-Webservice oder etwas Ähnliches verwendet und Sie den Server nicht ohne den Proxyserver erreichen können, müssen Sie ein Downgrade durchführen. Bitte beachten Sie, dass externe Javascript-Dateien (wie Facebook SDK oder ähnliches) von Ihrem Browser geladen werden, nicht von Ihrer Anwendung.

Da ich keine externen REST- oder SOAP-Dienste verwende, funktionierte es für mich!

Hoffentlich wird es auch für Sie funktionieren.

    
erickthered 18.10.2013, 22:41
quelle
1

Probieren Sie entweder:    - Zugriff über einen anderen Proxy. I.E a. Proxy in einem Proxy    - Zugriff über Ihre lokale IP, z. B. 192.168.1.1

    
Vogon Jeltz 10.08.2013 23:47
quelle
0

Ich hatte dasselbe Problem mit Version 1.9.5. Scheint, dass der API-Proxy einige RPCs an den Proxy-Server sendet, die dann mit HTTP 403 zurückgewiesen werden (da Proxy-Server im Allgemeinen so konfiguriert sind, dass sie Verbindungsversuche zu beliebigen Ports ablehnen). In meinem Fall nutzte ich das urlfetch -Modul in meiner App, um auf externe Webseiten zuzugreifen. Daher war die Deaktivierung des Proxy-Servers keine Wahl für mich.

So habe ich vor einiger Zeit an dem Problem gearbeitet (wahrscheinlich basiert es auf Kommentaren, die unter dieses Problem , aber ich kann mich nicht an die genauen Quellen erinnern).

HINWEIS:

  • Damit dieser Ansatz funktioniert, müssen Sie den Hostnamen / die IP-Adresse und den Standardport Ihres Proxyservers kennen und diese im Code entsprechend ändern, wenn Sie sich mit einem anderen Proxyserver verbinden.
  • Wenn Sie sich nicht hinter dem Proxy-Server befinden, müssen Sie die angewendeten Änderungen rückgängig machen, um in einen funktionierenden Zustand zurückzukehren (wenn Sie innerhalb Ihrer App Internetzugriff haben möchten).

Hier geht es:

  1. Deaktivieren Sie die Proxyeinstellungen für die Python-Umgebung (Google App Engine Launcher). (In meinem Fall war es einfach, da ich das dev_appserver.py von einer Terminal-Shell (unter Linux) gestartet habe, und die Befehle unset http_proxy und unset https_proxy haben es geschafft.)

  2. Bearbeiten {App Engine SDK root}/google/appengine/api/urlfetch_stub.py . Suchen Sie den Codeblock

    %Vor%

    (Zeilen 376-379 in meinem Fall) und ersetzen Sie es durch:

    %Vor%

    Ersetzen Sie die Platzhalter your_proxy_host_goes_here und your_proxy_port_number_goes_here durch geeignete Werte.

    (Ich glaube, dass dieser Code eleganter geschrieben werden kann, obwohl ... irgendwelche Python-Geeks da draußen? :))

  3. In meinem Fall musste ich auch die vorhandene kompilierte Datei urlfetch_stub.pyc (im selben Verzeichnis wie urlfetch_stub.py ) löschen, weil das SDK die Änderungen anscheinend erst übernommen hat.

Jetzt können Sie dev_appserver verwenden, um Ihre App zu starten, und urlfetch -backed Dienste innerhalb der App verwenden, frei von HTTP 403-Fehlern.

    
Janaka Bandara 15.02.2015 12:59
quelle