本人初学者,想使用url连接的方式实现客户端验证
05-14 17:31:08.739: E/AndroidRuntime(31595): FATAL EXCEPTION: main
05-14 17:31:08.739: E/AndroidRuntime(31595): android.os.NetworkOnMainThreadException
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at java.net.InetAddress.getAllByName(InetAddress.java:214)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.util.HttpUtil.getHttpResponse(HttpUtil.java:26)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.util.HttpUtil.queryStringForGet(HttpUtil.java:37)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.activity.LoginActivity.query(LoginActivity.java:122)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.activity.LoginActivity.login(LoginActivity.java:71)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.activity.LoginActivity.access$1(LoginActivity.java:65)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.hsn.activity.LoginActivity$2.onClick(LoginActivity.java:57)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.view.View.performClick(View.java:4211)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.view.View$PerformClick.run(View.java:17267)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.os.Handler.handleCallback(Handler.java:615)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.os.Looper.loop(Looper.java:137)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at android.app.ActivityThread.main(ActivityThread.java:4898)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at java.lang.reflect.Method.invokeNative(Native Method)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at java.lang.reflect.Method.invoke(Method.java:511)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
05-14 17:31:08.739: E/AndroidRuntime(31595):  at dalvik.system.NativeStart.main(Native Method)
LoginActivity.java // 登录方法
private boolean login() {
// 获得用户名称
String username = userEditText.getText().toString();
// 获得密码
String pwd = pwdEditText.getText().toString();
// 获得登录结果
String result = query(username, pwd);
         if(result.equals("1")){
Toast.makeText(getApplicationContext(),
"登陆成功!" , Toast.LENGTH_LONG).show();
Intent intent=new Intent();
intent.setClass(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}else if(result.equals("2")){
Toast.makeText(getApplicationContext(),
"用户名错误", Toast.LENGTH_LONG).show();
}else {
Toast.makeText(getApplicationContext(),
"密码错误", Toast.LENGTH_LONG).show();
}
return false;
}
private void showDialog(String msg) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(msg).setCancelable(false).setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
} // 根据用户名称密码查询(get方法)
private String query(String username, String password) {
// 查询参数
String queryString = "pname="+username+"&pAnswer="+password;
String url = HttpUtil.BASE_URL +"UserLogin.do"+"?"+queryString;
// 查询返回结果
System.out.println(url);
    String aString = HttpUtil.queryStringForGet(url);
    return aString;
}HttpUtil.javapublic class HttpUtil { // 基础URL
public static final String BASE_URL ="http://www.onlinefdc.com/"; // 获得Get请求对象request
public static HttpGet getHttpGet(String url) {
HttpGet request = new HttpGet(url);
return request;
} // 根据请求获得响应对象response
public static HttpResponse getHttpResponse(HttpGet request)
throws ClientProtocolException, IOException {
System.out.println("请求获得响应对象开始====================");
HttpResponse response = new DefaultHttpClient().execute(request);////执行不到这里
System.out.println("根据请求获得响应对象成功-----------------");
return response;
} // 发送Get请求,获得响应查询结果
public static String queryStringForGet(String url) {
String result = "0";
HttpGet request = HttpUtil.getHttpGet(url);
try {
// 获得响应对象
HttpResponse response = HttpUtil.getHttpResponse(request);
// 判断是否请求成功
if (response.getStatusLine().getStatusCode() == 200) {
// 获得响应
result = EntityUtils.toString(response.getEntity()).trim();
return result;
} } catch (ClientProtocolException e) {
e.printStackTrace();
result = "网络异常!"; } catch (IOException e) {
e.printStackTrace();
result = "网络异常!"; }
return result; }
}
Android调用http URL