想通过servlet中转访问mysql数据库,服务端写好了,验证可以访问。但是安卓端总是在连接时报错,求大神指点。
安卓端代码为:
报错logcat中的问题为:
坐等指点,我分数不多,求不吝指教!
安卓端代码为:
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("连接失败");
}
}
});
}
}
报错logcat中的问题为:
07-11 12:50:07.173: D/ActivityThread(5042): setTargetHeapUtilization:0.25
07-11 12:50:07.173: D/ActivityThread(5042): setTargetHeapIdealFree:8388608
07-11 12:50:07.173: D/ActivityThread(5042): setTargetHeapConcurrentStart:2097152
07-11 12:50:07.603: E/AdFireWallNative(5042): AdFrieWall JNI_OnLoad
07-11 12:50:07.603: E/AdFireWallNative(5042): AdFireWall JNI_OnLoad done.
07-11 12:50:07.654: W/IconCustomizer(5042): can't load transform_config.xml
07-11 12:50:07.954: I/Adreno200-EGL(5042): <qeglDrvAPI_eglInitialize:294>: EGL 1.4 QUALCOMM build: (CL3090659)
07-11 12:50:07.954: I/Adreno200-EGL(5042): Build Date: 09/03/13 Tue
07-11 12:50:07.954: I/Adreno200-EGL(5042): Local Branch:
07-11 12:50:07.954: I/Adreno200-EGL(5042): Remote Branch:
07-11 12:50:07.954: I/Adreno200-EGL(5042): Local Patches:
07-11 12:50:07.954: I/Adreno200-EGL(5042): Reconstruct Branch:
07-11 12:50:08.995: I/System.out(5042): 1
07-11 12:50:08.995: I/System.out(5042): 2
07-11 12:50:09.035: W/dalvikvm(5042): threadid=1: thread exiting with uncaught exception (group=0x4193b498)
07-11 12:50:09.055: E/AndroidRuntime(5042): FATAL EXCEPTION: main
07-11 12:50:09.055: E/AndroidRuntime(5042): android.os.NetworkOnMainThreadException
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1128)
07-11 12:50:09.055: E/AndroidRuntime(5042): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
07-11 12:50:09.055: E/AndroidRuntime(5042): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
07-11 12:50:09.055: E/AndroidRuntime(5042): at libcore.io.IoBridge.connect(IoBridge.java:112)
07-11 12:50:09.055: E/AndroidRuntime(5042): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
07-11 12:50:09.055: E/AndroidRuntime(5042): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
07-11 12:50:09.055: E/AndroidRuntime(5042): at java.net.Socket.connect(Socket.java:832)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-11 12:50:09.055: E/AndroidRuntime(5042): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-11 12:50:09.055: E/AndroidRuntime(5042): at com.example.android.MainActivity$1.login(MainActivity.java:66)
07-11 12:50:09.055: E/AndroidRuntime(5042): at com.example.android.MainActivity$1.onClick(MainActivity.java:46)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.view.View.performClick(View.java:4171)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.view.View$PerformClick.run(View.java:17097)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.os.Handler.handleCallback(Handler.java:615)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.os.Handler.dispatchMessage(Handler.java:92)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.os.Looper.loop(Looper.java:137)
07-11 12:50:09.055: E/AndroidRuntime(5042): at android.app.ActivityThread.main(ActivityThread.java:4897)
07-11 12:50:09.055: E/AndroidRuntime(5042): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 12:50:09.055: E/AndroidRuntime(5042): at java.lang.reflect.Method.invoke(Method.java:511)
07-11 12:50:09.055: E/AndroidRuntime(5042): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
07-11 12:50:09.055: E/AndroidRuntime(5042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
07-11 12:50:09.055: E/AndroidRuntime(5042): at dalvik.system.NativeStart.main(Native Method)
坐等指点,我分数不多,求不吝指教!