Android 如何进行HTTP连接?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

任何人都可以告诉我为什么这不起作用的Android模拟器?从浏览器中我可以访问,服务器是内部的。我能想到的是,我错过了我的应用程序的一些配置,所以它可以访问网络层:

try {
    InetAddress server = Inet4Address.getByName("thehost");
    //Doesn't work either
    //or InetAddress server2 = Inet4Address.getByAddress(new String("192.168.1.30").getBytes());

    if(server.isReachable(5000)){
        Log.d(TAG, "Ping!");
    }

    Socket clientsocket = new Socket(server, 8080);
} catch (UnknownHostException e) {
    Log.e(TAG, "Server Not Found");
} catch (IOException e) {
    Log.e(TAG, "Couldn't open socket");
}
提问于
用户回答回答于

就配置而言,从应用程序访问Internet所需的唯一设置是INTERNET权限,通过在应用程序清单内的Application标记之外添加以下行来启用:

<uses-permission android:name="android.permission.INTERNET" />

所以清单会遵循这个一般的结构:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.apis">    
  <uses-permission android:name="android.permission.INTERNET" />
  <application 
    android:name="MyApplication"    
    android:label="@string/application_title"
    android:icon="@drawable/my_icon">
    [ .. Your Activities go here ]
  </application>
</manifest>
用户回答回答于

由于超时,它可能仍然不起作用。由于你需要根权限才能发送ICMP包,而isReachable的实现将使用ECHO的慢TCP版本。

扫码关注云+社区