2

Es ist das erste Mal, dass ich GAE-Endpunkte in einem Android Studio-Projekt verwenden möchte. Also, ich habe einfach die Anweisungen von Google (https://cloud.google.com/tools/android-studio/app_engine/) gefolgt. Aber ich erhalte jedes Mal einen Fehler von 403, wenn ich versuche, ein Backend-Modul zu erstellen oder auszuführen. Hier ist die Botschaft:403 Verbotener Fehler beim Erstellen des Google Endpoints-Back-Ends in Android Studio

Error:Execution failed for task ':backend:appengineEndpointsGetClientLibs'. 
> There was an error running endpoints command get-client-lib: 403 Forbidden 
    <!DOCTYPE html> 
<html lang=en> 
    <meta charset=utf-8> 
    <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> 
    <title>Error 403 (Forbidden)!!1</title> 
    <style> 
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px} 
    </style> 
    <a href=//www.google.com/><span id=logo aria-label=Google></span></a> 
    <p><b>403.</b> <ins>That’s an error.</ins> 
    <p>Your client does not have permission to get URL <code>/_ah/api/discovery/v1/apis/generate/rest</code> from this server. <ins>That’s all we know.</ins> 

Normalerweise könnte ich diese Art von Fragen unterdrücken, indem ein Proxy in den Einstellungen aktivieren. Aber für diesen Fehler änderte sich nichts, nachdem ich drei Tage gegoogelt hatte und alle Lösungen durchblitzte. Jeder hat den gleichen Fehler gefunden? oder eine Lösung/Anregung kennen?

Bearbeiten Ich führe die Vorlage Endpoint-Projekt mit Beispiel MyBean und MyEndpoint-Klassen ohne Änderungen. Hier verwandten build.gradle Datei:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.google.appengine:gradle-appengine-plugin:1.9.18' 
    } 
} 

repositories { 
    mavenCentral(); 
} 

apply plugin: 'java' 
apply plugin: 'war' 
apply plugin: 'appengine' 

sourceCompatibility = JavaVersion.VERSION_1_7 
targetCompatibility = JavaVersion.VERSION_1_7 

dependencies { 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.18' 
    compile 'com.google.appengine:appengine-endpoints:1.9.18' 
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.18' 
    compile 'javax.servlet:servlet-api:2.5' 
} 

appengine { 
    downloadSdk = true 
    appcfg { 
     oauth2 = true 
    } 
    endpoints { 
     getClientLibsOnBuild = true 
     getDiscoveryDocsOnBuild = true 
    } 
} 
+1

Zeigen Sie uns bitte den entsprechenden Java-Code. –

+0

@TimBiegeleisen, Java-Code ist unverändert von Beispiel Hello Endpoints! Projekt. Ich habe hinzugefügt, Gradle Build-Einstellungen im Bearbeitungsbereich –

Antwort

1

Google blockiert den Zugriff von Menschen in einigen Ländern, darunter Iran zu http://developer.google.com und http://apis.google.com, so dass Sie Probleme haben.

Sie sollten Google App Engine ohnehin vermeiden, wegen Privatsphäre, Portabilität und mehrere andere Sorgen.

Portabilität betrifft

Entwickler befürchten, dass die Anwendungen nicht tragbar sein aus dem App Motor und Angst in die Technik erfasst werden kann. Als Reaktion darauf gibt es eine Reihe von Projekten zum Erstellen von Open-Source-Back-Ends für die verschiedenen proprietären/geschlossenen APIs der App-Engine , insbesondere den Datastore. AppScale, CapeDwarf und TyphoonAE sind einige der offenen Quellen.

https://en.wikipedia.org/wiki/Google_App_Engine#Portability_concerns

können Sie diese Alternativen nutzen.

+0

Vielen Dank für Antwort @ Ho1. In der Tat, Tragbarkeit oder andere GAE Hauptnachteile sind nicht meine Bedenken. Ich arbeite für einen Arbeitgeber außerhalb des Irans, wo das gesamte Projekt eingesetzt wird. Ich hatte dieses Problem beim Herunterladen des Frameworks, indem ich Entwicklerfunktionen verwendete, aber ein Proxy-Server ermöglichte es mir, Apps in der Google-Umgebung zu entwickeln und zu testen. Ist es für dieses spezielle Problem möglich, eine Proxy-Einstellung für Java httprequests beim Test zu verwenden? –

+0

Ja. Aber VPN wäre eine bessere Wahl. – Ho1

Verwandte Themen