android 连接web服务连不上?请诸位大神看下,谢谢

liliangjin_2008 2013-06-18 11:33:51
android 连接web服务连不上?请诸位大神看下,谢谢

06-18 03:07:31.209: V/Sys(751): 111111
06-18 03:07:31.339: D/AndroidRuntime(751): Shutting down VM
06-18 03:07:31.339: W/d
alvikvm(751): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-18 03:07:31.479: E/AndroidRuntime(751): FATAL EXCEPTION: main
06-18 03:07:31.479: E/AndroidRuntime(751): android.os.NetworkOnMainThreadException
06-18 03:07:31.479: E/AndroidRuntime(751): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
06-18 03:07:31.479: E/AndroidRuntime(751): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
06-18 03:07:31.479: E/AndroidRuntime(751): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
06-18 03:07:31.479: E/AndroidRuntime(751): at libcore.io.IoBridge.connect(IoBridge.java:112)
06-18 03:07:31.479: E/AndroidRuntime(751): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
06-18 03:07:31.479: E/AndroidRuntime(751): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
06-18 03:07:31.479: E/AndroidRuntime(751): at java.net.Socket.connect(Socket.java:842)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
06-18 03:07:31.479: E/AndroidRuntime(751): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
06-18 03:07:31.479: E/AndroidRuntime(751): at com.tata.fdjl.LoginViewget.Loginsys(LoginViewget.java:107)
06-18 03:07:31.479: E/AndroidRuntime(751): at com.tata.fdjl.LoginViewget.onClick(LoginViewget.java:72)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.view.View.performClick(View.java:4204)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.view.View$PerformClick.run(View.java:17355)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.os.Handler.handleCallback(Handler.java:725)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.os.Handler.dispatchMessage(Handler.java:92)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.os.Looper.loop(Looper.java:137)
06-18 03:07:31.479: E/AndroidRuntime(751): at android.app.ActivityThread.main(ActivityThread.java:5041)
06-18 03:07:31.479: E/AndroidRuntime(751): at java.lang.reflect.Method.invokeNative(Native Method)
06-18 03:07:31.479: E/AndroidRuntime(751): at java.lang.reflect.Method.invoke(Method.java:511)
06-18 03:07:31.479: E/AndroidRuntime(751): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-18 03:07:31.479: E/AndroidRuntime(751): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-18 03:07:31.479: E/AndroidRuntime(751): at dalvik.system.NativeStart.main(Native Method)
06-18 03:07:31.569: D/dalvikvm(751): GC_CONCURRENT freed 367K, 17% free 2712K/3244K, paused 74ms+57ms, total 225ms


android:

package com.tata.fdjl;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.tata.fdjl.util.ClientCon;


public class LoginViewget extends Activity implements OnClickListener {
public EditText countnameedit;// 用户名编辑
public TextView countname;// 账户名称
public EditText countpwdedit;// 密码编辑
public TextView countpwd;// 账户密码
public Button login;// 登录
public Button regfd;// 注册
String loginname = null;
String loginpwd = null;
public ClientCon clientcon;
Handler hd;
final String Address = "http://192.168.1.12:8080/ghd01/login.do?username=admin&password=admin";
String msgStr = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 全屏
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.login);
countname = (TextView) findViewById(R.id.countname);
countnameedit = (EditText) findViewById(R.id.countnameedit);
countpwd = (TextView) findViewById(R.id.countpwd);
countpwdedit = (EditText) findViewById(R.id.countpwdedit);
login = (Button) findViewById(R.id.login);
regfd = (Button) findViewById(R.id.regfd);
// 添加按钮事件
login.setOnClickListener(this);
regfd.setOnClickListener(this);
}

@Override
public void onClick(View v) {
if (v == login) {
// 执行登录处理
Loginsys();

} else if (v == regfd) {
// 注册
Register();
}
}

public void Register() {
Intent intent = new Intent(LoginViewget.this, RegView.class);
startActivity(intent);
}

// login----httpget
public void Loginsys() {
loginname = countnameedit.getText().toString().trim();
loginpwd = countpwdedit.getText().toString().trim();
if (loginname.matches("")) {
Toast.makeText(LoginViewget.this, "用户账户不能为空!", Toast.LENGTH_SHORT)
.show();
countnameedit.setFocusable(true);
return;
} else if (loginpwd.matches("")) {
Toast.makeText(LoginViewget.this, "用户密码不能为空!", Toast.LENGTH_SHORT)
.show();
countpwdedit.setFocusable(true);
} else {
//
// final Map<String, String> map = new HashMap<String, String>();
// map.put("loginname", loginname);
// map.put("loginpwd", loginpwd);

try {
HttpGet httpRequest = new HttpGet(Address);
Log.v("Sys", "111111");
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode()==200) {
msgStr = EntityUtils.toString(httpResponse.getEntity());
//删除多余字符
msgStr = eregi_replace("\r\n|\r|\n|\n\r"," ",msgStr);
if (msgStr.equals("登录成功")) {
Toast.makeText(LoginViewget.this, "登录成功!", Toast.LENGTH_SHORT)
.show();
Log.v("Sys", "登录成功:");
gotoMainView();
} else {
Log.v("Sys", "登录失败:" + msgStr);
Toast.makeText(LoginViewget.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
else{
Log.v("Sys", "登录失败:" + msgStr);
Toast.makeText(LoginViewget.this, "登录失败", Toast.LENGTH_SHORT).show();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}

private String eregi_replace(String string, String string2, String msgStr2) {
String strPattern = "?i"+string;
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(msgStr2);
if(m.find()){
return msgStr2.replaceAll(string, string2);
}
else{
return msgStr2;
}
}

public void gotoMainView() {
Intent intent = new Intent(LoginViewget.this, CamFramain.class);
startActivity(intent);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login_view, menu);
return true;
}
}


2、这种也不行:

String Address = "http://127.0.0.1:8080/ghd01/login.do?";
try {
HttpPost httpRequest = new HttpPost(Address);
Log.v("Sys", "111111");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", loginname));
params.add(new BasicNameValuePair("password", loginpwd));
params.add(new BasicNameValuePair("flag", "0"));
httpRequest.setEntity(new UrlEncodedFormEntity(params,
HTTP.UTF_8));
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);
if(httpResponse.getStatusLine().getStatusCode()==200) {

msgStr = EntityUtils.toString(httpResponse.getEntity());
if (msgStr.equals("登录成功")) {
Toast.makeText(LoginView01.this, "登录成功!", Toast.LENGTH_SHORT)
.show();
Log.v("Sys", "登录成功:");
gotoMainView();
} else {
Log.v("Sys", "登录失败:" + msgStr);
Toast.makeText(LoginView01.this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
else{
Log.v("Sys", "登录失败:" + msgStr);
Toast.makeText(LoginView01.this, "登录失败", Toast.LENGTH_SHORT).show();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}


...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hotkarriver 2013-06-19
  • 打赏
  • 举报
回复
android.os.NetworkOnMainThreadException 网络操作不能放主线程
凉凉二点凉 2013-06-19
  • 打赏
  • 举报
回复
接分
liliangjin_2008 2013-06-18
  • 打赏
  • 举报
回复
在线跪等啊!
liliangjin_2008 2013-06-18
  • 打赏
  • 举报
回复
web是用ssh架起来的, login.java

package com.tata.actions;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.actions.DispatchAction;

import com.common.util.Constants;
import com.tata.dao.TataDAO;
import com.tata.forms.LoginForm;

public class LoginAction extends DispatchAction {

	protected TataDAO tataDAO;

	Logger log = Logger.getLogger(this.getClass());

	public TataDAO getTataDAO() {
		return tataDAO;
	}

	public void setTataDAO(TataDAO tataDAO) {
		this.tataDAO = tataDAO;
	}

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		ActionErrors errors = new ActionErrors();
		ActionForward forward = new ActionForward();
		LoginForm loginForm = (LoginForm) form;
		PrintWriter pw=response.getWriter();
		try {
			// get parameters
			String username = loginForm.getUsername();
			log.info("User " + username + " login.");
			// invalidate the original session if exists
			HttpSession session = request.getSession(false);
			log.info("session " + session.toString() + " login.");
			if (session != null) {
				session.invalidate();
			}
			// create a new session for the user
			session = request.getSession(true);
			// login
			boolean isValid = valid(request, loginForm);
			if (isValid) {
				session.setAttribute(Constants.USERNAME_KEY, username);
				pw.write("登录成功");
				log.info("User " + username + " login.");
			} else {
				errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
						"login.message.failed"));
				pw.write("登录失败");
				log.info("User isValid " + isValid + " login.");
			}
		} catch (Exception e) {
			e.printStackTrace();
			errors.add(ActionErrors.GLOBAL_MESSAGE, new ActionMessage(
					"login.message.failed"));
			log.info("User Exception: "+e.getLocalizedMessage());
			log.info("e.getMessage(): "+e.getMessage());
			log.info("e.getMessage()22: "+e.toString());
		}

		// If a message is required, save the specified key(s)
		// into the request for use by the <struts:errors> tag.

		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			request.setAttribute("loginFormBean", loginForm);
			forward = mapping.findForward(Constants.FAILURE_KEY);
		} else {
			forward = mapping.findForward(Constants.SUCCESS_KEY);
		}

		// Finish with
		return (forward);
	}

	private boolean valid(HttpServletRequest request, LoginForm loginForm) {
		if (getTataDAO().isValid(loginForm.getUsername(),
				loginForm.getPassword())) {
			return true;
		} else {
			return false;
		}
	}


}
loginform.java

package com.tata.forms;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class LoginForm extends ActionForm {

	private static final long serialVersionUID = -8028907637588473959L;

	protected String username = null;

	protected String password = null;

	public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
		ActionErrors errors = new ActionErrors();
		if (username == null || username.equals("")) {
			errors.add("username", new ActionMessage(
					"login.error.username"));
		}
		if (password == null
				|| password.equals("")) {
			errors.add("password", new ActionMessage(
					"login.error.password"));
		}
		arg1.setAttribute("loginFormBean", this);
		return errors;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}

tataDAO

package com.tata.dao;

import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.tata.pojo.Tata;



public class TataDAO extends HibernateDaoSupport implements ITataDAO {
	Logger log = Logger.getLogger(this.getClass());
	public boolean isValid(final String username, final String password) {
		List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
			
			public Object doInHibernate(Session session)
					throws HibernateException {
				log.info("111111111");
				log.info("22222222"+Restrictions.eq("username", username)+"password: "+Restrictions.eq("password", password));
				List result = session.createCriteria(Tata.class).add(
						Restrictions.eq("username", username)).add(
						Restrictions.eq("password", password)).list();
				
				log.info("22222222");
				return result;
			}
		});log.info("33333"+list.size());
		if (list.size() > 0) {
			return true;
		} else {
			return false;
		}
	}

	public boolean isExist(final String username) {
		List list = (List) getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)
					throws HibernateException {
				List result = session.createCriteria(Tata.class).add(
						Restrictions.eq("username", username)).list();
				System.out.println("user: "+result);
				return result;
			}
		});
		if (list.size() > 0) {
			return true;
		} else {
			return false;
		}
	}

	public void insertTata(Tata tata) {
		System.out.println("开始insertUser ");
		getHibernateTemplate().saveOrUpdate(tata);
		System.out.println("getHibernateTemplate().saveOrUpdate(user): ");
	}

	public Tata getTata(String tataid) {
		return (Tata) getHibernateTemplate().get(Tata.class,
				new Integer(tataid));
	}

	public List getTatas() {
		return getHibernateTemplate().find("from Tata");
	}

	public void deleteTata(String tataid) {
		Object p = getHibernateTemplate().load(Tata.class, new Integer(tataid));
		getHibernateTemplate().delete(p);
	}
}
急啊,几天都没整出头绪来,请求大神看下,谢谢
fire_fire_fire 2013-06-18
  • 打赏
  • 举报
回复
恭喜楼主自己解决,接分
liliangjin_2008 2013-06-18
  • 打赏
  • 举报
回复
已得到解决: new Thread(){ @Override public void run(){ //你要执行的方法 //执行完毕后给handler发送一个空消息 handler.sendEmptyMessage(0); } }.start(); //定义Handler对象 private Handler handler =new Handler(){ @Override //当有消息发送出来的时候就执行Handler的这个方法 public void handleMessage(Message msg){ super.handleMessage(msg); //处理UI } }; 原文来自:雨枫技术教程网 http://www.fengfly.com 原文网址:http://www.fengfly.com/plus/view-210886-1.html

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧