我正在尝试从我的Android应用程序访问IP地址,但我没有运气。这是我正在尝试的异步任务:
protected String doInBackground(Void...arg0) {
try{
URL url = new URL(myIP);
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
String read = readStream(con.getInputStream());
return read;
} catch(Exception e){
e.printStackTrace();
}
return null;
}
private String readStream(InputStream in){
BufferedReader reader = null;
StringBuilder sb = new StringBuilder("xxxx");
try{
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while((line = reader.readLine()) != null){
sb.append(line + "\n");
}
} catch(IOException e){
e.printStackTrace();
} finally{
if(reader != null){
try{
reader.close();
} catch(IOException e){
e.printStackTrace();
}
}
}
return sb.toString();
}
protected void onPostExecute(String result){
textView.setText(result);
}
当我使用像www.stackoverflow.com这样的普通网址时,它工作正常,但是当我尝试使用IP时,没有任何响应。它没有抛出任何异常而且它没有更新textView(我尝试根据抛出的异常返回不同的结果)。所以这让我想到了一个问题,IP地址是URL连接的有效输入吗?如果我能提供任何其他信息,请告诉我。
我的最终目标是向此IP发送REST请求以访问特定信息,这可能会有所帮助。
答案 0 :(得分:1)
HttpsUrlConnection类用于HTTPS连接,如果您想使用IP访问网站,您的myIP变量应该是这样的:
String myIP="https://62.123.123.123/index.php" //for example
但是,如果要访问远程计算机以进行直接通信,则应使用套接字。
检查this
希望有所帮助:)
答案 1 :(得分:0)
由于我所在的网络,我无法访问IP。简而言之,我原来问题的答案是肯定的,IP地址对于HttpURLConnections来说是无用的。
答案 2 :(得分:0)
我遇到了这个问题,结果发现您无法将IP地址放在证书的CN字段中,而是必须进入“主题备用名称”字段。