以自己的电脑作为服务器,Android端通过JSON来传递数据到后台
2017-02-13 14:30
447 查看
不会写后台的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
相关文章推荐
- Android开发:客户端与服务器通过传递和接收json数据进行交互
- Android通过POST方法传递数据给服务器
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android与服务器间数据传递及JSON解析
- Android使用webview控件加载本地html,通过Js与后台Java实现数据的传递
- 以自己的电脑作为服务器,Android真机测试网络请求
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- android跟服务器使用json传递数据
- Android客户端与服务器之间传递json数据
- Android通过POST方式传递数据到服务器简单demo
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android入门:通过JSON数据与服务器进行通信
- android跟服务器使用json传递数据
- Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android入门:通过JSON数据与服务器进行通信
- js中的多组json数据同时通过ajx传递到php后台
- android 客户端访问自己建立的服务器并返回JSON数据进行解析学习