android连接到localhost从connectify我使用Web服务

时间:2013-05-30 07:41:18

标签: android rest connection jersey

首先,我会告诉你我该怎么做:

  • 我可以使用计算机IP将我的真实设备连接到我网站上的servlet

  • 我可以使用10.0.2.2 IP将我的模拟器连接到我的网站上的servlet

  • 我可以使用10.0.2.2 IP

  • 将我的模拟器连接到我的网络服务

我的问题。

我无法将我的真实设备连接到网络服务;

我试过这个(它适用于模拟器);

public class Client {

    private String server;

    public Client(String server) {
        this.server = server;
    }

    private String getBase() {
        return server;
    }

    public String getBaseURI(String str) {
        String result = "";
        try {
            HttpParams httpParameters = new BasicHttpParams();
            int timeoutConnection = 3000;
            HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
            int timeoutSocket = 5000;
            HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
            DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
            HttpGet getRequest = new HttpGet(getBase() + str);
            getRequest.addHeader("accept", "application/json");
            HttpResponse response = httpClient.execute(getRequest);
            result = getResult(response).toString();
            httpClient.getConnectionManager().shutdown();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } 
        return result;
    }

    public String getBaseURIText(String str) {
        String result = "";
        try {
            HttpParams httpParameters = new BasicHttpParams();
            int timeoutConnection = 3000;
            HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
            int timeoutSocket = 5000;
            HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);
            DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
            HttpGet getRequest = new HttpGet(getBase() + str);
            getRequest.addHeader("accept", "text/plain");
            HttpResponse response = httpClient.execute(getRequest);
            result = getResult(response).toString();
            httpClient.getConnectionManager().shutdown();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return result;
    }

 private StringBuilder getResult(HttpResponse response) throws IllegalStateException, IOException {
            StringBuilder result = new StringBuilder();
            BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())), 1024);
            String output;
            while ((output = br.readLine()) != null) 
                result.append(output);

            return result;      
      }
}

然后我这样称呼客户:

Client client = new Client("http://46.57.164.64:8080/test2/eattel/");
            client.getBaseURI("image/image");

这完全适用于模拟器。但现在我的真实设备:(

我使用电缆将我的真实设备连接到计算机。

我的计算机和我的设备已连接到connectify-me无线网络。

请帮助

我确信这是关于IP的事情

2 个答案:

答案 0 :(得分:2)

我认为这里出了什么问题,你是通过电缆连接电脑和真实设备。您的真实设备应连接到无线网络连接WiFi。您的计算机也应通过电缆或WiFi连接无线网络。然后,在Real Device的Internet浏览器中键入计算机IP地址后,您应该能够看到计算机上运行的服务器的主页。如果即将到来,您的应用程序可以与计算机中的Web服务进行通信。如果不是这意味着您的IP地址未正确设置无线网络。您可能必须重新启动无线网络并再次尝试。

答案 1 :(得分:0)

您是否尝试发现用于连接连接的计算机IP地址? 如果您使用的是Windows操作系统,请转到命令提示符,键入ipconfig并搜索无线LAN适配器本地连接下的ipv4地址。如果使用connectify

,通常以192.168.xxx.xxx开头