无法从Genymotion模拟器连接到本地gae端点

Serj

这是一个简单的helloworld项目,使用的是从MyBean生成的端点(MyEndpoint默认为)Endpoints module我使用的仿真器是Genymotion,我通过/10.0.2.2 ip连接到该仿真器当我在Web浏览器中本地访问端点服务器“ localhost:8080”时,它工作正常,但是当我在AndroidStudio中使用模拟器运行/调试它时,出现此超时异常:

-3571/com.serjsmor.anotherbackend W/System.err﹕ java.net.SocketTimeoutException: failed to connect to /10.0.2.2 (port 8080) after 20000ms
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at libcore.io.IoBridge.connect(IoBridge.java:122)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at java.net.Socket.connect(Socket.java:882)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.Platform.connectSocket(Platform.java:139)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.Connection.connect(Connection.java:148)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:208)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:25)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:77)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at com.serjsmor.anotherbackend.MainActivity$1.run(MainActivity.java:25)
    03-03 11:44:30.310    3548-3571/com.serjsmor.anotherbackend W/System.err﹕ at java.lang.Thread.run(Thread.java:818)

客户端模块: TestEndpoint.java

public class TestEndpoint {

    final MyApi taskApiService;

    // Constructor
    public TestEndpoint () {
        MyApi.Builder builder = new MyApi.Builder(AndroidHttp.newCompatibleTransport(),
                new AndroidJsonFactory(), null)
                .setRootUrl("https://10.0.2.2:8080/_ah/api/")
                .setGoogleClientRequestInitializer( new GoogleClientRequestInitializer() {
                    @Override
                    public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest)
                            throws IOException {
                        abstractGoogleClientRequest.setDisableGZipContent(true);
                    }
                }

                );
        taskApiService = builder.build();
    } // end of constructor, other methods to follow in this class...
}

运行它的实际代码:MainActivity.java

new Thread( new Runnable() {
            @Override
            public void run() {
                TestEndpoint test = new TestEndpoint();
                try {
                    test.taskApiService.sayHi("sdad").execute();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

后端模块: MyBean.java

public class MyBean {

    private String myData;

    public String getData() {
        return myData;
    }

    public void setData(String data) {
        myData = data;
    }
}

MyEndpoint.java

@Api(name = "myApi", version = "v1", namespace = @ApiNamespace(ownerDomain = "backend.anotherbackend.serjsmor.com", ownerName = "backend.anotherbackend.serjsmor.com", packagePath = ""))
public class MyEndpoint {

    /**
     * A simple endpoint method that takes a name and says Hi back
     */
    @ApiMethod(name = "sayHi")
    public MyBean sayHi(@Named("name") String name) {

        MyBean response = new MyBean();
        response.setData("Hi, " + name);

        return response;
    }

模块:app build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.serjsmor.anotherbackend"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile project(path: ':backend', configuration: 'android-endpoints')
}

模块:后端build.gradle

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

repositories {
    jcenter();
}

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.14'
    compile 'com.google.appengine:appengine-endpoints:1.9.14'
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.14'
    compile 'javax.servlet:servlet-api:2.5'
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }
}
编码乐趣

10.0.2.2是指您的Genymotion模拟器设备,而不是您的开发应用引擎引擎所在的设备。您的开发应用程序引擎服务器应在本地台式计算机上运行,​​并使用典型的IP地址,例如192.168.1.100。因此改为:

.setRootUrl(“ http://192.168.1.100:8080/_ah/api/ ”)

使用cmd.exe窗口中的“ ipconfig”命令从Windows中找到您的IP地址。我不知道其他操作系统。请注意,您将在本地使用“ http”,而不是“ https”(用于访问appspot.com上的应用程序引擎)

您所有其他代码似乎都是正确的!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Genymotion模拟器:无法连接到Firebase

来自分类Dev

无法连接到本地Google Cloud Datastore模拟器

来自分类Dev

PhoneJS w Ripple模拟器无法连接到本地节点服务器

来自分类Dev

无法从本地主机外部连接到模拟器内部的服务器

来自分类Dev

无法从本地主机外部连接到模拟器内部的服务器

来自分类Dev

无法在连接到TFS本地计算机的构建代理中运行android模拟器

来自分类Dev

NetBeans无法连接到Android模拟器AVD

来自分类Dev

无法连接到iOS模拟器中的解析

来自分类Dev

Xcode无法连接到IOS模拟器

来自分类Dev

Android模拟器无法连接到IIS部署的站点

来自分类Dev

NetBeans无法连接到Android模拟器AVD

来自分类Dev

Xamarin iOS模拟器无法连接到Rest API

来自分类Dev

Jenkins无法连接到Android模拟器

来自分类Dev

无法使用 Xamarin Forms 连接到 iOs 模拟器

来自分类Dev

如何从Android模拟器连接到本地服务器?

来自分类Dev

模拟器:模拟器:错误:AdbHostServer.cpp:102:无法连接到端口5037上的adb守护程序

来自分类Dev

从Flutter应用程序连接到本地Firebase功能模拟器时出错

来自分类Dev

从Xamarin Vs2015 Android模拟器连接到本地Web服务

来自分类Dev

Genymotion 2.7模拟器拒绝与ADB的连接

来自分类Dev

Genymotion模拟器无法在Windows 8.1中启动

来自分类Dev

我无法在genymotion模拟器中使用相机

来自分类Dev

无法在Mac的Genymotion模拟器上运行telnet命令

来自分类Dev

无法在GenyMotion模拟器中运行设备

来自分类Dev

如何修复Android模拟器中的“无法连接到相机服务”异常

来自分类Dev

无法从Android模拟器连接到localhost上的wcf服务

来自分类Dev

在iOS模拟器上测试IAP时出现错误{NSLocalizedDescription =无法连接到iTunes Store}

来自分类Dev

通过android模拟器连接到服务器

来自分类Dev

通过android模拟器连接到服务器

来自分类Dev

C# UWP - 如何将移动模拟器连接到本地 MySQL 数据库?

Related 相关文章

  1. 1

    Genymotion模拟器:无法连接到Firebase

  2. 2

    无法连接到本地Google Cloud Datastore模拟器

  3. 3

    PhoneJS w Ripple模拟器无法连接到本地节点服务器

  4. 4

    无法从本地主机外部连接到模拟器内部的服务器

  5. 5

    无法从本地主机外部连接到模拟器内部的服务器

  6. 6

    无法在连接到TFS本地计算机的构建代理中运行android模拟器

  7. 7

    NetBeans无法连接到Android模拟器AVD

  8. 8

    无法连接到iOS模拟器中的解析

  9. 9

    Xcode无法连接到IOS模拟器

  10. 10

    Android模拟器无法连接到IIS部署的站点

  11. 11

    NetBeans无法连接到Android模拟器AVD

  12. 12

    Xamarin iOS模拟器无法连接到Rest API

  13. 13

    Jenkins无法连接到Android模拟器

  14. 14

    无法使用 Xamarin Forms 连接到 iOs 模拟器

  15. 15

    如何从Android模拟器连接到本地服务器?

  16. 16

    模拟器:模拟器:错误:AdbHostServer.cpp:102:无法连接到端口5037上的adb守护程序

  17. 17

    从Flutter应用程序连接到本地Firebase功能模拟器时出错

  18. 18

    从Xamarin Vs2015 Android模拟器连接到本地Web服务

  19. 19

    Genymotion 2.7模拟器拒绝与ADB的连接

  20. 20

    Genymotion模拟器无法在Windows 8.1中启动

  21. 21

    我无法在genymotion模拟器中使用相机

  22. 22

    无法在Mac的Genymotion模拟器上运行telnet命令

  23. 23

    无法在GenyMotion模拟器中运行设备

  24. 24

    如何修复Android模拟器中的“无法连接到相机服务”异常

  25. 25

    无法从Android模拟器连接到localhost上的wcf服务

  26. 26

    在iOS模拟器上测试IAP时出现错误{NSLocalizedDescription =无法连接到iTunes Store}

  27. 27

    通过android模拟器连接到服务器

  28. 28

    通过android模拟器连接到服务器

  29. 29

    C# UWP - 如何将移动模拟器连接到本地 MySQL 数据库?

热门标签

归档