以自己的电脑作为服务器,Android端通过JSON来传递数据到后台

不会写后台的Android程序猿不是好程序猿!!!!

JAVA后台

一、新建JavaWeb项目

       File->New->Other->Dynamic Web Project

二、导入 fastjson  jar包,下载位置:http://download.csdn.net/detail/lrici/9753344

三、1、新建User类

package com.cc.json;

import java.util.Date;

import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;

public class User {

	private String name;
	private Date birthday;
	private String password;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	
}

2、新建ServletJson类

package com.cc.json;

import java.io.IOException;  
import java.io.OutputStream;  
import java.util.Date;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;

public class ServletJson extends HttpServlet{

	  private User buildUserDO(){  
	        User user = new User();  
	        user.setName("王二麻子");  
	        user.setPassword("sdgsgd");  
	        user.setAge(11);  
	        user.setBirthday(new Date());  
	          
	        return user;  
	    }  
	    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
	        response.setContentType("application/json; charset=utf-8");  
	        response.setCharacterEncoding("UTF-8");  
	  
	        String userJson = JSON.toJSONString(buildUserDO());  
	        OutputStream out = response.getOutputStream();  
	        out.write(userJson.getBytes("UTF-8"));  
	        out.flush();  
	    }  
	  
	    
	    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
	    }  
}

四、在web.xml中添加映射

  <servlet-name>HelloJson</servlet-name>
<servlet-class>com.cc.json.ServletJson</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>HelloJson</servlet-name>
  <url-pattern>/HelloJson</url-pattern>
  </servlet-mapping>

五、Run As->Run on Server

在浏览器输入http://localhost:8080/HelloJson/ServletJson

执行结果


源码下载http://download.csdn.net/detail/lrici/9753347


Android端

一、在AndroidStudio中新建项目

二、编辑activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="cool.example.administrator.connectnetwork.MainActivity">
<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="读取数据"
    />


</android.support.design.widget.CoordinatorLayout>

三、编辑MainActivity.java文件

package cool.example.administrator.connectnetwork;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.concurrent.SynchronousQueue;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.button1).setOnClickListener(new View.OnClickListener(

        ) {
            @Override
            public void onClick(View v) {
                new AsyncTask<String, Void, Void>() {
                    @Override
                    protected Void doInBackground(String... params) {
                        try {
                            URL url=new URL(params[0]);
                           URLConnection urlConnection= url.openConnection();
                            //inputstrewam来接收返回值
                           InputStream inputStream= urlConnection.getInputStream();
                            //把inputStream封装成eInputStreamReader,是一个从字节到字符的转换
                            InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"UTF-8");
                            //创建一个bufferReader,通过BufferReader直接读取一行字符串
                            BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
                            String line;//用于临时记录读取到的一行字符串
                            while((line= bufferedReader.readLine())!=null){
                                System.out.println(line);
                            }
                            bufferedReader.close();
                            inputStreamReader.close();
                            inputStream.close();


                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        return null;
                    }
                }.execute("http://10.11.177.245:8080/HelloJson/ServletJson");
            }
        });


    }


}
注意:10.11.177.245是本机的IP地址!!!即Java后台运行时在浏览器中输入的localhost

四、在AndroidManifest.xml中添加网络连接的权限

<uses-permission android:name="android.permission.INTERNET"/>
五、运行安装程序,点击读取数据

运行结果


注意:测试的时候需要使用Android虚拟机来安装Apk文件,使用真机测试不通过,使用真机测试方法http://blog.csdn.net/lrici/article/details/55098876

源码地址:http://download.csdn.net/detail/lrici/9754119



  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,实现一个会员登录界面需要以下步骤: 1. 创建一个Android项目并添加登录界面的布局。 2. 在布局文件中添加用户名和密码输入框、登录按钮等控件。 3. 在后台服务器上创建一个用于验证用户名和密码的API。 4. 在Android代码中编写与后台服务器通信的代码,实现登录功能。 下面是一个简单的示例代码: 1. 在布局文件中添加用户名和密码输入框、登录按钮等控件: ``` <EditText android:id="@+id/usernameEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="用户名"/> <EditText android:id="@+id/passwordEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:hint="密码"/> <Button android:id="@+id/loginButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录"/> ``` 2. 在Android代码中编写与后台服务器通信的代码,实现登录功能: ``` private void login() { EditText usernameEditText = findViewById(R.id.usernameEditText); EditText passwordEditText = findViewById(R.id.passwordEditText); String username = usernameEditText.getText().toString(); String password = passwordEditText.getText().toString(); // 发送请求到后台服务器,验证用户名和密码 String url = "http://your-backend-server.com/login"; JSONObject requestObject = new JSONObject(); try { requestObject.put("username", username); requestObject.put("password", password); } catch (JSONException e) { e.printStackTrace(); } JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, requestObject, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // 登录成功,跳转到主界面 Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // 登录失败,提示用户 Toast.makeText(LoginActivity.this, "登录失败,请检查用户名和密码", Toast.LENGTH_SHORT).show(); } }); Volley.newRequestQueue(this).add(jsonObjectRequest); } ``` 这里使用了Volley库来发送HTTP请求到后台服务器,并使用Json格式来传递参数和接收响应。你需要根据自己后台服务器的API来修改请求的URL和参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值