当前位置:编程学习 > wap >>

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

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/dalvikvm(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();
}


--------------------编程问答--------------------
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);
}
}

急啊,几天都没整出头绪来,请求大神看下,谢谢
--------------------编程问答-------------------- 在线跪等啊! --------------------编程问答-------------------- 已得到解决:
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

--------------------编程问答-------------------- 除 --------------------编程问答-------------------- 恭喜楼主自己解决,接分 --------------------编程问答-------------------- android.os.NetworkOnMainThreadException
网络操作不能放主线程 --------------------编程问答--------------------
接分
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,