java - URLConnection Androidstudio
问题描述
如何查看网站是否可用?
例如: https ://google.com = true https://g00gleee.org = false
public class MainActivity extends AppCompatActivity {
public WebView webView;
Writer writer = new StringWriter();
String upordown = "";
public boolean isConnectedToServer(String url, int timeout) {
try{
URL myUrl = new URL("https://dfgdsfgdsgdfsg.com");
URLConnection connection = myUrl.openConnection();
connection.setConnectTimeout(timeout);
connection.connect();
return true;
} catch (Exception e) {
e.printStackTrace(new PrintWriter(writer));
upordown = writer.toString();
return false;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button btn = (Button) findViewById(R.id.testbtn);
webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("https://google.nl");
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isConnectedToServer("https://google.com", 100);
System.out.println(upordown);
}
});
}
}
当我在这里使用代码时,我将收到:
I/System.out:android.os.NetworkOnMainThreadException 在 android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1565) 在 java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:115) 在 java.net.Inet6AddressImpl。在 com.android.okhttp.Dns$1.lookup(Dns.java:41) 在 com.android.okhttp.internal 的 java.net.InetAddress.getAllByName(InetAddress.java:1152) 中查找AllHostAddr(Inet6AddressImpl.java:103)。 http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:178) 在 com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:144) 在 com.android.okhttp.internal.http.RouteSelector.next(RouteSelector. java:86) 在 com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:176) 在 com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128) 在 com。android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97) 在 com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289) 在 com.android.okhttp.internal.http。 HttpEngine.sendRequest(HttpEngine.java:232) I/System.out:在 com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465) 在 com.android.okhttp.internal.huc.HttpURLConnectionImpl。连接(HttpURLConnectionImpl.java:131)在 com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90) 在 com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)在 com.example.httptest.MainActivity.isConnectedToServer(MainActivity.java:32) 在 com.example.httptest.MainActivity$1.onClick(MainActivity.java:59) 在 android.view.View.performClick(View.java:7125) 在 android.view.View.performClickInternal(View.java:7102) 在 android.view.View.access$3500(View.java:801) 在 android.view.View$PerformClick.run(View.java:27336)在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:214) 在 android.app。 ActivityThread.main(ActivityThread.java:7356) 位于 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 的 java.lang.reflect.Method.invoke(Native Method) 位于 com.android。 internal.os.ZygoteInit.main(ZygoteInit.java:930)os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os。 RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os。 RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
我现在如何查看该网站是否可用?
解决方案
推荐阅读
- flask - 将数据从 Bootstrap 模式发送到 Flask 后端
- python - 有人可以解释添加自定义权限吗?(姜戈)
- r - 为什么我的行没有被删除?(R工作室)
- javascript - 不推荐使用同步 XMLHttpRequest 的最简单解决方案,并在 javascript 对 php 进行 ajax 调用时添加等待圆圈 gif 动画
- oauth-2.0 - 两个不同的断言字符串如何在 WSO2 Identity Server 中生成相同的访问令牌?
- laravel - Laravel 策略视图资源未触发
- flask - marshmallow-sqlalchemy 无法从父 model_schema 获取子模型的数据
- reactjs - 如何在 Reactjs 中提交表单后将焦点设置在空输入字段上
- ios - 使用应用程序上下文将数据从 iPhone 发送到 WatchOS 时遇到问题
- python - 将带有 groupby 子句的多个数据帧导出到一个 csv 文件中