java - HttpClient 使用 Genymotion 模拟器卡在 Android 上

标签 java android tomcat servlets xmlhttprequest

我正在尝试在 Android 上使用 HttpClient 运行 HTTP 请求。 这是我在 Android 端的代码:

httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 15000);

// Create a new HttpClient and Post Header
httpClient = new DefaultHttpClient(httpParams);
getRequest = new HttpGet(Dictionary.MINYAN_SERVER + servlet);
getRequest.addHeader(ACCEPT, APP_JSON);

HttpResponse response = httpClient.execute(getRequest); //STUCKED HERE

如果我删除超时设置,我将永远不会收到回复。随着超时,我收到超时异常。

在服务器端,我在本地主机上运行了一个简单的 servlet。这是代码:

public class Test extends HttpServlet 
{
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        System.out.println("adasdasd asdsadsad");
        JSONObject obj = new JSONObject();
        try
        {
            obj.put("name", "vlad");
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }

         response.setContentType("application/json");
         response.getWriter().write(obj.toString());
    }
}

注意:

当尝试从浏览器访问 loclhost:8080/Test 时,我得到:{"name":"vlad"} 没问题。

Dictionary.MINYAN_SERVER 包含 http://10.0.2.2:8080/servet 包含 Test

我的 Manifest.xml 文件中有 Internet 权限。

有什么办法可以解决吗?

最佳答案

好的,在@Olaf Kock 的 gr8 帮助下,我找到了解决方案 here . Genymotion 在 Virtualbox 上运行,默认网络配置为“Host-Only”。此方法实质上模拟了由您的 Genymotion VM(模拟器)和您的主机共享的物理网络。网络的名称是 vboxnet0,如果您在主机上运行“ifconfig vboxnet0”(如果运行 Windows,则运行“ipconfig vboxnet0”),您应该在 vboxnet0 网络上收到主机的 IP 地址。默认 IP 很可能是 192.168.56.1。这是从 Genymotion 模拟器访问主机时使用的 IP 地址。

对我有用的 url 是:

http://192.168.56.1:8080/

更新:

您可以找到您的 IP 地址 ( follow this link to get your IP address )。像这样放置此地址:http://ip_address:80808080 是您的本地 Web 服务器的端口(tomcat 默认端口)。

关于java - HttpClient 使用 Genymotion 模拟器卡在 Android 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527448/

相关文章:

java - 应用程序不会收到消息并通过 GCM 获得 "NotRegistered"响应

android - 警告 : This AsyncTask class should be static or leaks might occur

android - [ReactNative]DrawerLayoutAndroid 在使用堆栈导航器后行为异常

spring - 为什么我在不使用 RestTemplate 时会收到 SAML 错误?

java - Eclipse错误: Target runtime Apache Tomcat v7. 0未定义

java - 如何在java spring REST上返回由对象包装的数组字节

java - 为 android 自定义选项卡标题中的文本

java - 静态数组不一样 [java]

Java 7 keytool 椭圆曲线加密

tomcat - 从网络共享按需将 war 文件部署到 Tomcat 中?