我的是联想笔记本,想实现笔记本充当服务器,手机可以实现与其信息交互,但是屡试都不行。
先说一下我连接的方式:
我用tomcat运行一个简单jsp 用浏览器能访问到结果,用android模拟器也能返回结果,但是用真机就无法访问。请问哪位高手帮我解答一下。
我是用笔记本开启WiFi,手机连上WiFi,在WiFi连接里面查看到ip地址,
jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
String id=request.getParameter("id");
String pwd=request.getParameter("pwd");
%>
<%
if(id.equals("hui")&&pwd.equals("123")){
%>
true
<% }
else{
%>
false
<%
}
%>
android代码
AsyncTask task=new AsyncTask(){
//onPostExecute方法在doInBackground方法结束后自动调用
//doInBackground方法的返回值会作为onPostExecute参数
//和doInBackground不同的地方是,这个方法是属于UI线程的
@Override
protected void onPostExecute(Object result) {
TextView txt=(TextView)findViewById(R.id.txt);
txt.setText(result.toString());
}
//doInBackground是一个后台任务执行的方法
//其实它和Thread的run方法没有任何区别
//doInBackground方法在你执行execute方法后被调用
@Override
protected Object doInBackground(Object... params) {
try{
URL url=new URL(params[0].toString());
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setConnectTimeout(6000);
conn.setRequestMethod("GET");
if(conn.getResponseCode()==200){
InputStream in=conn.getInputStream();
int len=0;
byte[] buff=new byte[1024];
ByteArrayOutputStream bos=new ByteArrayOutputStream();
while((len=in.read(buff))>0){
bos.write(buff, 0, len);
}
String msg=new String(bos.toByteArray());
return msg;
}
}catch(Exception e){
e.printStackTrace();
}
return null;
}
};
task.execute("http://192.168.2.240:8080/MyWebServer/getText.do");//这里是WiFi连接电脑后查到的ip地址
|