android客户端与服务端交互数据问题

下面是我的LoginActivity
package textview.exam;

import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.DefaultHttpClient;

import java.util.HashMap;
import java.util.Map;

public class LoginActivity extends Activity {
Button okbutton;
EditText id;
EditText pass;
String uname;

HttpClient httpClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);
    final ActionBar actionBar = getActionBar();
    actionBar.hide();
    httpClient=new DefaultHttpClient();
    okbutton=(Button)findViewById(R.id.ok);
    okbutton.setOnClickListener(loginokListener);
    id = (EditText)findViewById(R.id.login_id);
    pass = (EditText)findViewById(R.id.login_password);
    Button loginback=(Button)findViewById(R.id.backlogin);
    loginback.setOnClickListener(backloginListener);

}
View.OnClickListener backloginListener=new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent in = getIntent();
        in.putExtra( "result","欢迎登录家友" );
        LoginActivity.this.setResult(1, in);
        LoginActivity.this.finish();
    }
};
View.OnClickListener loginokListener=new View.OnClickListener() {
    @Override
    public void onClick(View v) {
                    // 执行输入校验
                    if (validate())  // ①
                    {
                        // 如果登录成功
                        if (loginPro())  // ②
                        {
                            Log.i("LoginServlet","1561161");
                            Intent in = getIntent();
                            in.putExtra( "result", uname );
                            LoginActivity.this.setResult(0, in);
                            LoginActivity.this.finish();

                        }
                        else
                        {
                            Toast.makeText(LoginActivity.this,
                                    "用户名或密码错误!", Toast.LENGTH_LONG).show();
                        }
                    }



    }
};
private boolean loginPro()
{
    // 获取用户输入的用户名、密码
    String uid = id.getText().toString();
    String upass = pass.getText().toString();
    try
    {
        uname=loginyanzheng(uid, upass);
        Log.i("服务器的问题"+uname,"");
        // 如果uname不为空
        if (uname!=null)
        {
            return true;
        }
    }
    catch (Exception e)
    {
        Toast.makeText(this,"服务器响应异常,请稍后重试!", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }

    return false;
}

// 对用户输入的用户名、密码进行校验
private boolean validate()
{
    String uid = id.getText().toString().trim();
    if (uid.equals(""))
    {
        Toast.makeText(this,"账号不许为空!", Toast.LENGTH_LONG).show();
        return false;
    }
    String upass = pass.getText().toString().trim();
    if (upass.equals(""))
    {
        Toast.makeText(this,"请输入密码!", Toast.LENGTH_LONG).show();
        return false;
    }
    return true;
}

// 定义发送请求的方法
private String loginyanzheng(String id, String pass) throws Exception
{
    // 使用Map封装请求参数
    Map<String, String> map = new HashMap<>();
    map.put("id", id);
    map.put("pass", pass);
    Log.i("按时吃饭三coin啊搜in粗偶i","1");
    // 定义发送请求的URL
    String url = HttpUtil.BASE_URL+"LoginServlet";
    Log.i("爱上擦擦实现擦拭小","2");
    // 发送请求
    return HttpUtil.postRequest(url, map);
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
        Intent in = getIntent();
        in.putExtra( "result", "欢迎登录家友");
        LoginActivity.this.setResult(1, in);
        LoginActivity.this.finish();
    }
    return false;
}

//返回动画
protected void onPause() {
    super.onPause();
    overridePendingTransition(R.anim.in_from_down,
            R.anim.out_to_up);
}

}
下面是我HttpUitl
package textview.exam;

import android.util.Log;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class HttpUtil
{
// 创建HttpClient对象
public static HttpClient httpClient = new DefaultHttpClient();
public static final String BASE_URL =
"http://192.168.1.88:8888/auction/android/";
/**
*
* @param url 发送请求的URL
* @return 服务器响应字符串
* @throws Exception
*/
public static String getRequest(final String url)
throws Exception
{
FutureTask task = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
// 创建HttpGet对象。
HttpGet get = new HttpGet(url);
// 发送GET请求
HttpResponse httpResponse = httpClient.execute(get);
// 如果服务器成功地返回响应
if (httpResponse.getStatusLine()
.getStatusCode() == 200)
{
// 获取服务器响应字符串
String result = EntityUtils
.toString(httpResponse.getEntity());
return result;
}
return null;
}
});
new Thread(task).start();
return task.get();
}

/**
 * @param url 发送请求的URL
 * @param请求参数
 * @return 服务器响应字符串
 * @throws Exception
 */
public static String postRequest(final String url
        , final Map<String ,String> rawParams)throws Exception
{
    FutureTask<String> task = new FutureTask<String>(
            new Callable<String>()
            {
                @Override
                public String call() throws Exception
                {
                    // 创建HttpPost对象。
                    HttpPost post = new HttpPost(url);
                    // 如果传递参数个数比较多的话可以对传递的参数进行封装
                    List<NameValuePair> params = new ArrayList<>();
                    for(String key : rawParams.keySet())
                    {
                        //封装请求参数
                        params.add(new BasicNameValuePair(key
                                , rawParams.get(key)));
                    }
                    // 设置请求参数
                    post.setEntity(new UrlEncodedFormEntity(
                            params, "gbk"));
                    // 发送POST请求
                    HttpResponse httpResponse = httpClient.execute(post);
                    Log.i("所发生的初三大四","按时打算");
                    // 如果服务器成功地返回响应
                    if (httpResponse.getStatusLine()
                            .getStatusCode() == 200)
                    {
                        // 获取服务器响应字符串
                        String result = EntityUtils
                                .toString(httpResponse.getEntity());
                        return result;
                    }
                    Log.i("暗示法撒旦吃撒多长","按时打算");
                    return null;
                }
            });
    new Thread(task).start();
    return task.get();
}

}
下面是我服务端Servlet代码
package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.factory.DAOFactory;

import vo.Users;

public class LoginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=GBK");
    request.setCharacterEncoding("utf-8");
    Users users = new Users();
    //客户端的账号以及密码
    users.setUserid(request.getParameter("id"));    
    users.setUpwd(request.getParameter("pass"));
    try {
        if(DAOFactory.getUserDAOInstance().findLogin(users)){       
            request.getSession().setAttribute("name", users.getUname());
            //request.getRequestDispatcher("index.jsp").forward(request, response);
        //向客户端发送字符串
        response.getWriter().println("aisd");
        System.out.println("登录成功");


        }
        else{
            response.getWriter().print("对不起,用户名、密码不符合!");
            System.out.println("对不起,用户名、密码不符合!");
        }
     } catch (Exception e) {
        e.printStackTrace();
    }

}

}

0

1个回答

InputStream is = null;
try {

// 定义获取文件内容的URL
URL myURL = new URL("http://xxxxx/xxxx");
// 打开URL链接

URLConnection ucon = myURL.openConnection();

// 使用InputStream,从URLConnection读取数据

is = ucon.getInputStream();

int size=is.available();
byte[] buf=new byte[size];
is.read(buf);
is.close();
String outStr=new String(buf,"utf-8");
System.out.println(outStr);
} catch (Exception e) {

e.printStackTrace();
} finally {
try {
if(is!=null){ is.close(); }
} catch (Exception e2) {}
}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android 客户端与服务器端进行数据交互Demo(包含服务器端和客户端)
Android 客户端与服务器端进行数据交互Demo(包含服务器端和客户端) 实现了基本的数据交互及验证
安卓和java服务端交互遇到问题大坑
问题一:从来没有做过安卓等客户端类的软件开发,依然沿用cookie_session机制进行客户认证和授权,但是,app的用户机制貌似不符合,折腾好几天,改shiro的存储机制,发现还是达不到需要的效果,最终浪费了很多时间,后来在网上看了大部分人使用token进行用户表示,这个一种无状态的,客户端需要存储token,请求服务端时放到请求的头部携带到java服务端,java服务端获取token以后进行
Android客户端与PHP服务端的数据交互
最近在学习Android客户端,刚好学到了Android的网络应用,钻研了一下,写一篇博客来记录学习心得。由于安卓系统一般是作为客户端,所以我们除了需要编写客户端之外,还需要自己写一个服务端,这里的服务端我是用PHP+MySQL来建立的。
Android客户端与服务器端的json数据交互(服务端+客户端)
Android客户端与服务器端的json数据交互(服务端+客户端)
Android客户端与服务器端的json数据交互(内含大量知识点)
Android客户端与服务器端的json数据交互(内含大量知识点),包含文件的上传,文件浏览器等。
android客户端与服务端交互简单登录实现
android客户端与服务端交互简单登录实现; 客户端是androidstudio 是module不是project; 服务端是eclipse; 修改下url就可以用了。
Android 客户端与服务器端进行数据交互(二、登录客户端)
概要Android客户端分为User,HttpUtil,HttpCallbackListener,MainActivity四个部分。User model与服务端的一样,一方面是用于本地用户信息的存储model,另一方面也是为了保证构造URL时使用的key一致。 HttpUtil封装了发送Http请求的过程和构造URL的函数,HttpCallbackListener是用于发送请求后的回调接口,Mai
Android客户端与服务器端交互(okHttp)
Android中服务器和客户端交互,可上传文件、图片、json数据,也可从服务器端下载图片、文件
Android 使用Json实现服务器与客户端数据的交互
第一步:写一个远程查询工具类,使用单例模式/** * 查询远程服务器的工具 * @author chen.lin * */ public class QueryUtils { //private static final String TAG = "CommonUtils"; private static QueryUtils instance; private Sh
Android客户端与服务器端交互数据之json解析
服务器端的工作就是将特定的数据类型转换为json字符串,然后客户端再将json字符串转换成原来的类型,所以json解析是跨平台数据格式转换的一个桥梁, 这里以最常用的对象类型,list包裹对象类型,list包裹String类型,以及list包裹Map对象类型4种情况为例简单介绍json的数据解析 服务器端json所用到的jar包下载(免积分)   服务器端源码下载(免积分) 一、首先服务器
Android客户端+SSM框架服务器端开发案例实践
android客户端连接javaweb服务器,java web服务器采用SSM(spring+springMVC+mybatis)框架。服务器端即可以处理android请求,又可以处理浏览器jsp页面请求。
Android客户端与PC端服务器进行交互
对于Android和pc的通信,有很多没有写好的东西,也借鉴了很多大佬写的程序,发出来算是一个集合,有很多不足之处,请各位大佬指点。首先是pc端的服务器(运用ServerSocket去进行交互):import java.io.*; import java.net.*; public class AndroidServer implements Runnable{ public static ...
Android客户端与服务器的交互(增删改查)之干货篇(内含代码)
引言 写这篇纪念一下我这两个星期的学习成果,其中过程应该和你看这篇博客的经历差不多!真心希望能让后来者少走弯路,CSDN上有关这方面的博客很多,很乱,让很多新人无从下手,这是我写这篇博客的原因! 目标 完成安卓客户端对服务器数据库的增删该查操作 一.客户端的登录和注册(增删) 二.通过客户端修改密码(改) 三.从服务器获取数据库的数据返回客户端并将其显示出来(查) 准备工作 写JavaWeb的工具...
Android客户端与服务器端交互 如何保持session
 最近在给公司内部做一个供应链系统,需要进行Android与JAVA WEB之间的交互,做了好久才做好,现在总结一下问题的原因。    开始的时候App只是为了测试扫描二维码是不是成功,所以就没有登录,当启动程序直接就会进入扫描二维码的界面,最后测试成功了之后加上了登录功能。登录功能实现了之后,接下来要将扫描到的二维码信息保存到java web里面,最终保存到数据库里,这时候问题来了。
android客户端与javaweb服务器端数据通信-异步Get
android studio端package com.example.z_t.mytest3; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view....
Android 客户端与服务器端进行数据交互(一、登录服务器端)
概要安卓APP要实现很多功能(比如登录注册、发表评论等)时都必须要使用到网络数据交互。所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手。 预期效果图如下,输入手机号和密码,点击Login按钮,上传数据到服务器端进行验证,再对结果进行反馈。 博客分一二两篇,第一篇是服务器端,第二篇是Android客户端 而服务器端分为User model、Use
Android中从服务器端向客户端传数据
server端: response.setContentType(&quot;text/plain&quot;); response.setCharacterEncoding(&quot;UTF-8&quot;); PrintWriter out = response.getWriter(); UserDAO userDAO = new UserDAO(); ArrayList list =...
Android客户端Java本地服务端交互例子(1)
Android客户端Java本地服务端交互例子
Android开发:客户端与服务器通过传递和接收json数据进行交互
Android开发:客户端与服务器通过传递和接受json数据进行交互
Android客户端Java本地服务端交互例子(2)
Android客户端Java本地服务端交互例子(2)
Android GSON数据格式解析_客户端
【Android 开发】: Android客户端与服务端之间使用GSON交互数据。 http://blog.csdn.net/ahuier/article/details/16871741
Android通过get,post方式客户端与服务器端交互实例
Android通过get,post方式客户端与服务器端交互实例,一个简单的demo,在客户端中输入参数,传给服务器端并打印出来。
Android JSON数据格式解析_服务端
【Android 开发】: Android客户端与服务端之间使用GSON交互数据。 http://blog.csdn.net/ahuier/article/details/16871741
JSON数据格式解析_服务端
【Android 开发】: Android客户端与服务端之间使用JSON交互数据。 http://blog.csdn.net/ahuier/article/details/15493603 服务端代码
Android与服务端(SSM)交互
这里写自定义目录标题客户端服务端方式一:PrintWriter方式二:OutputStream方式三:使用@ResponseBody注解 客户端 Android在Android Studio平台,采用OkHttp进行网络请求 服务端 服务端采用了SSM(Spring+SpringMVC+MyBatis)框架 这里介绍服务端接收并返回json数据的多种方法 方式一:PrintWriter @Requ...
Android客户端与服务器端数据同步
应用场景 假设我们在做一个通讯录软件,我们既可以在本地做增删改的操作,也可以在PC上的Web端做增删改的操作。那么这篇文章中我们要解决的问题是如何在客户端与服务端只传输经过增删改操作的数据,来使得客户端与服务端的数据是同步的。 名词解释 Anchor:同步锚点,用时间戳来表示,用来发现两端数据变化的部分 客户端表设计 每条记录包含两个用来同步用的字段: status : 用来标识记录的
Android客户端+mysql+springmvc服务器端实现登陆的小案例
首先是客户端 通过输入用户名+密码实现登录 点击登录后向服务器发送http请求 服务器收到请求后验证用户名密码是否与mysql数据库上的相应字段是否一致 然后返回json数据 客户端获取响应的结果 然后提醒是否登录成功 MainActivity代码: public class MainActivity extends Activity {     /** Called when the
android客户端与服务端交互的工具类
客户端: public class HttpUtil { //创建HttpClient对象 public static HttpClient httpClient = new DefaultHttpClient(); public static final String BASE_URL="http://xxx.xxxx.xx.xx:8080/ticket/"; // pub
servlet的作用--我之理解
早期用servlet充当视图层,业务逻辑层及持久层. [code] protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String aa = config.getInitParameter(&quot;a...
Android客户端与服务端(jsp)之间json的传输与解析例子源码
博客 Android客户端与服务端(jsp)之间json的传输与解析【附效果图附源码】用的源码,欢迎大家下载!
Android客户端和Java服务器端集成支付宝
第三方支付集成,Android和服务器端
android 客户端与服务器端之间采用JSON进行数据通信之一
Android 客户端与服务器端之间采用JSON进行数据通信                                     之 客户端获取服务器端数据 最近由于公司项目需要,需要将之前手机APK端与电视机顶盒端之间以XML形式进行数据传输的媒介更换成Json格式。所以在对Json一无所知的情况下从头开始学习json这一数据交换格式。由于Json的完全独立于语言的文本格式,它易于阅读和
实现PHP服务器+Android客户端(Retrofit+RxJava)第四天客户端与服务器通信的实现
我的上一篇文章已经介绍了retrofit+rxjava的配置(包括缓存),从这一篇开始就开始讲我要实现的这个app网络请求部分的构思,也就是要请求那些数据,数据的类型等等。我要实现的客户端看图: 看了界面基本应该能知道要实现的效果了。我这里就分块说好了 “发现”有以下几块 1. 头条 2. 文字 3. 图片 4. 视频 “更多”我暂时还没想好要实现什么效果 首先不
057集-Android客户端与服务端交互-服务端代码
057集-Android客户端与服务端交互-服务端代码视频教程,很是不错哦,有兴趣的可以学习下。
Android JSON数据格式解析_客户端
【Android 开发】: Android客户端与服务端之间使用JSON交互数据。 http://blog.csdn.net/ahuier/article/details/15493603 客户端代码
以Android端为客户端和servlet为服务端的实时通讯(登录注册)
以Android端为客户端和servlet为服务端的实时通讯的登录注册
android客户端通过url传值到服务端,中文处理
try { name=URLEncoder.encode(name, &quot;UTF-8&quot;); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }在传值之前对参数进行转码后再使用
Android客户端与服务器交互,登录案例
实现了Android客户端与服务器的交互,客户端采用Android Studio开发,Web服务器采用MyEclipse开发,数据库使用MySQL,采用Hibernate框架开发
JAVA web服务端+Android客户端
本代码实现了: 1:客户端,手机实现登录和注册等功能,利用Post和Get等方式 2:服务器端接收手机客户端的信息,并将信息存储在数据库中,很详细,对初学者有较大的帮助
源代码和数据库皆上传。此项目为SSH框架的服务器端与Android的客户端通过Json进行数据交互,适合新手,简单易学
源代码和数据库皆上传。此项目为SSH框架的服务器端与Android的客户端通过Json进行数据交互,适合新手,简单易学