【发布时间】:2011-09-24 15:01:56
【问题描述】:
我正在尝试检查服务中的可变数量的网站,该服务每 15 分钟被警报唤醒一次。我遇到的问题是,当我启动服务来检查网站时,它给了我一个 java.net.UnknownHostException ,因为我知道一个网站很好。 Perhpas 我不完全理解被吐出的错误,但我不确定为什么代码会给我这样的问题。
这是堆栈:
06-28 19:30:06.270: WARN/System.err(560): java.net.UnknownHostException: http://www.cnn.com/
06-28 19:30:06.480: WARN/System.err(560): at java.net.InetAddress.lookupHostByName(InetAddress.java:513)
06-28 19:30:06.480: WARN/System.err(560): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:280)
06-28 19:30:06.490: WARN/System.err(560): at java.net.InetAddress.getByName(InetAddress.java:310)
06-28 19:30:06.520: WARN/System.err(560): at com.myapp.tracker.Listen.checkWebsite(Listen.java:102)
06-28 19:30:06.520: WARN/System.err(560): at com.myapp.tracker.Listen.onStartCommand(Listen.java:64)
06-28 19:30:06.520: WARN/System.err(560): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3053)
06-28 19:30:06.530: WARN/System.err(560): at android.app.ActivityThread.access$3600(ActivityThread.java:125)
06-28 19:30:06.530: WARN/System.err(560): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2096)
06-28 19:30:06.530: WARN/System.err(560): at android.os.Handler.dispatchMessage(Handler.java:99)
06-28 19:30:06.530: WARN/System.err(560): at android.os.Looper.loop(Looper.java:123)
06-28 19:30:06.550: WARN/System.err(560): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-28 19:30:06.550: WARN/System.err(560): at java.lang.reflect.Method.invokeNative(Native Method)
06-28 19:30:06.550: WARN/System.err(560): at java.lang.reflect.Method.invoke(Method.java:521)
06-28 19:30:06.550: WARN/System.err(560): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-28 19:30:06.550: WARN/System.err(560): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-28 19:30:06.550: WARN/System.err(560): at dalvik.system.NativeStart.main(Native Method)
代码如下:
public void checkWebsite(Intent intent) throws Exception {
BufferedReader in = null;
try {
Bundle bundle = intent.getExtras();
int [] checkboxes = bundle.getIntArray("checkboxes");
if( checkboxes[0] == 0){
String failure = "******FAILURE VALUE = 0";
Log.d(TRACKER_DEBUGGING, failure);
}
String [] websites = bundle.getStringArray("websites");
if( websites[0] == null){
String failure = "******FAILURE VALUE = null";
Log.d(TRACKER_DEBUGGING, failure);
}
for(int i = 0; i < 3; i++ ){
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
if( checkboxes[i] == 1 ){
request.setURI(new URI(websites[i]));
Log.d(TRACKER_DEBUGGING, websites[i]);
// this line right here is throwing the error
HttpResponse response = client.execute(request);
// more code after this but it never reaches this point or executes any of it
我对为什么会发生这种情况感到非常困惑。我想我对 Http 请求并不是很熟悉,但我觉得这应该可行。
EDIT*****:我发誓我已经添加了使用互联网权限,但我实际上并没有添加它。现在我知道在将来遇到 UnknownHostException 时要三重检查。
为所有花时间回答的人投赞成票,并感谢您娱乐我的白痴。
【问题讨论】:
标签: java android httpwebrequest