gpt4 book ai didi

android - HttpGet Android API 的随机行为

转载 作者:行者123 更新时间:2023-11-29 22:10:37 25 4
gpt4 key购买 nike

我正在尝试使用 HttpGet 实现 ping 但行为是随机的。

我有以下测试互联网/服务器连接的代码:

boolean result = false;
HttpGet request = new HttpGet("www.MyServer.com");
HttpParams httpParameters = new BasicHttpParams();
HttpClient httpClient = new DefaultHttpClient(httpParameters);

try
{
HttpConnectionParams.setConnectionTimeout(httpParameters, 6000);
HttpConnectionParams.setSoTimeout(httpParameters, 6000);
HttpResponse response = httpClient.execute(request);

int status = response.getStatusLine().getStatusCode();

if (status == HttpStatus.SC_OK)
{
result = true;
}

}
catch(Exception e)
{
e.printStackTrace();
result = false;
}

Log.d("App", "Ping Result:"+result);

以上代码我在线程中运行,因为它可能需要时间。当我第一次运行这个测试时,我得到的结果是真的,但是在行为是随机的之后,有时它给我错误“主机无法访问”,我得到的结果是假的。

我只想测试是否可以从当前配置的 Android 网络访问服务器。

是否有任何可靠的 API 来测试互联网/服务器连接?

更新:

在服务中,我有以下启动测试的函数。

void startTest()
{
ServerTestThread mServerTestThread = new ServerTestThread()
mServerTestThread.start();
}

class ServerTestThread extends Thread
{
boolean result = false;
public void run()
{
//HttpGet code

//Send Message TO GUI Thread with result.
}
}

上面的startTest 函数是创建测试线程的实例并调用start 函数。测试完成后,我将消息发送到包含结果的主线程。

谢谢。

最佳答案

你的代码没有问题。这意味着:

  1. 有时服务器确实无法访问
  2. 连接很慢,在到达服务器之前就超时了。

因此测试将超时设置为某个更大的值,例如 60000(60 秒),然后再次检查。如果有效,那么您就知道这是因为超时。

编辑

另外请进行此更改,也许它会为我们提供更多信息:

Log.d("App", "Status:" + status);
if (status == HttpStatus.SC_OK)
{
result = true;
}

EDIT2

class ServerTestThread extends Thread 
{

public static boolean result = false;
public static HttpGet request = new HttpGet("www.MyServer.com");
public static HttpParams httpParameters = new BasicHttpParams();
public static HttpClient httpClient = new DefaultHttpClient(httpParameters);

boolean result = false;
public void run()
{
//HttpGet code

//Send Message TO GUI Thread with result.
}

}

作为奖励, this将告诉您是否已连接到网络。

关于android - HttpGet Android API 的随机行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com