在Android上,我正在使用 HttpClient连接到一个网址,代码如下:
String url = "http://[fe80::1cef:49e7:2661:ffda]:7001/a.MOV";
HttpParams httpParameters = new BasicHttpParams();
HttpClient client = new DefaultHttpClient(httpParameters);
HttpGet httpGet = new HttpGet(url);
HttpResponse response = client.execute(httpGet);
当输入标准URL或v4 IP地址时,代码运行良好。然而,当我使用v6地址时,上述代码的最后一行将失败,抛出java.net.SocketException: Invalid argument
。
为了说明问题,比如这个地址:
http://192.168.1.2:7001/a.MOV
这个不会有问题:
http://[fe80::1cef:49e7:2661:ffda]:7001/a.MOV
完全不起作用。
为了确认,我还尝试使用较新的HttpURLConnection来建立连接,结果仍然抛出相同的异常。
目前我正在一台运行Android 3.2版本的Google TV设备上进行测试。
那么我是做错了什么吗?如果没有,有没有办法解决Android这个明显的限制?
http://[fe80::1cef:49e7:2661:ffda%eth0]:7001/a.MOV
。如果可能的话,最好使用全局地址或ULA地址。 - Sander Steffann