public class LoginHttpClientGet {
private static LoginHttpClientGet loginHttp;
public static LoginHttpClientGet getInstance() {
if (loginHttp == null) {
loginHttp = new LoginHttpClientGet();
}
return loginHttp;
}
// HttpGet方式请求
public static void requestByHttpGet(String name, String password,
Handler handler) {
/**
* @param 拼接網址
* String logenPath = path + "?" + "account=" + name + "&" + "passwd="
* http://showapi.sixin.cn/login.json?account=13838384380&passwd=123456
* 下面这种执行速度更快 效率更高
**/
String logenPath = String.format(
"http://showapi.sixin.cn/login.json?account=%s&passwd=%s",
name, password);
// 新建HttpGet对象
HttpGet httpGet = new HttpGet(logenPath);
// 获取HttpClient对象
HttpClient httpClient = new DefaultHttpClient();
// 请求超时15秒
httpClient.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT, 15000);
// 读取超时 5秒
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
5000);
Message msg = handler.obtainMessage();// 异步发送消息给主线程
// 获取HttpResponse实例
HttpResponse httpResp;
String result = null;
try {
httpResp = httpClient.execute(httpGet);
// 判断是够请求成功
if (httpResp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
msg.what = 1001;
// 获取返回的数据
result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
// Log.e("===ch", result);
} else {
msg.what = 1004;
}
msg.obj = result;
} catch (ClientProtocolException e) {
msg.what = 1002;// 网络请求超时
e.printStackTrace();
} catch (IOException e) {
msg.what = 1003;// 网络连接超时
e.printStackTrace();
} finally {
handler.sendMessage(msg);
}
}
}
其中返回状态码,是服务器给的,改成相对应的就可以了。
android使用get方式访问服务器
最新推荐文章于 2021-05-25 21:29:30 发布