想通过servlet中转访问mysql数据库,服务端写好了,验证可以访问。但是安卓端总是在连接时报错,求大神指点。
安卓端代码为:
package com.example.android;
import java.io.IOException;
import java.io.Serializable;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.content.DialogInterface;
import android.view.View.OnClickListener;
import android.net.ParseException;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Button mButton;
TextView mTextView;
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
mButton= (Button) findViewById(R.id.button1);
mTextView= (TextView) findViewById(R.id.textView1);
mButton.setOnClickListener(new Button.OnClickListener() {
//String content;
@Override
public void onClick(View v) {
login();
}
private void login() {
// TODO Auto-generated method stub
String url="http://10.9.3.14:8080/servlet/servlet?username=aa";
//即相当于http://10.81.36.187:8080/orderdishes/orderdishes_servlet?username="a",其中的//username对应"a",后面会用到
String result = "";
System.out.println("1");
HttpGet request = new HttpGet(url); //调用servlet的doget方法
System.out.println("2");
//在这里执行请求,访问url,并获取响应
HttpResponse response = null;
try {
response = new DefaultHttpClient().execute(request);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch bloc
e1.printStackTrace();
}
System.out.println("3");
//获取返回码,等于200即表示连接成功,并获得响应
if(response.getStatusLine().getStatusCode() == 200) {
System.out.println("4");
try {
result= EntityUtils.toString(response.getEntity());
} catch (org.apache.http.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //获取响应中的数据
System.out.println("result"+ result);
}else {
System.out.println("连接失败");