这里写自定义目录标题

  • 自建Android服务器
    • 自己入手的介绍
    • 选用的工具
    • 知识储备
    • 下面我们就来编写代码吧
  • 服务端的编写
  • 客户端的编写
  • 结语

自建Android服务器

刚开始学习的小伙伴肯定不知道从哪里入手,觉着自建服务系写后台比较难,刚开始我也是这样觉着,不过搞了几天以后,觉着也也没想象中的那么难,就是刚开始的时候不知道从哪里入手,没有头绪才会觉着难,等有了一定的了解以后,就会觉着简单的多了。

自己入手的介绍

现在有很多云服务,不过我用的自己的电脑做的服务器,个人觉着比较好上手。如何择选就看个人需求吧,我只是为了测试。
我没有链接本地数据库,只是测试了能够C/S成功。

选用的工具

Tomcat,eclipse,Android studio
因为是Android开发,就搭建了java的服务器环境,用的jdk。
还有开发过程中选用的一些包,我都会贴出来。
(好吧,文件内容过大,没办法上传。。。需要的找我要吧)

知识储备

了解java ee的servlet
了解Android的OKhttp的网络请求

这里我放一篇帖子,觉着他的相关介绍挺详细的,我刚开始学习的时候也参考了他的,可以看一遍后了解下相关知识后再来看下边的。

下面我们就来编写代码吧

一、服务端代码的编写
二、客户端代码的编写

服务端的编写

1、eclipse下创建Maven工程
2、将工程进行升级到下图所示

3、创建一个servlet类,会自动生成相应的代码,然后也不需要进行相应的配置,可以直接进行编写代码了。

3、在pom.xml下的dependencies节点下添加下列依赖。因为服务端要返回json给客户端

     <dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version></dependency>

4、后台Hello.java的。因为好多代码都是自动生成的,这里只需要了解get和post两个方法的异同就好了。下面就来看代码吧。

package servlets;import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSONObject;
@WebServlet("/Hello")
public class Hello extends HttpServlet {private static final long serialVersionUID = 1Lpublic Hello() {super()}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置数据的格式,避免出现乱response.setContentType("application/json;charset=utf-8");response.setCharacterEncoding("UTF-8");//获取客服端传递过来的数据//这里注意下Username和Password要和客户端的保持一致String username = request.getParameter("Username").trim();String password = request.getParameter("Password").trim();//这个就自己查一下吧,我也不了解没就知道这样用。PrintWriter out = response.getWriter();//装换程json格式,以便于传递数据Map<String, String> params = new HashMap<>();JSONObject jsonObject  = new JSONObject();//这里就没有连接数据库,有需要的可以自己连接数据库//成功或者失败,返回的数据不一样if (username.equals("123") && password.equals("123")) params.put("Result", "success")}else {params.put("Result", "failed");jsonObject.put("params", params);//返回数据out.write(jsonObject.toString());}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doGet(request, response);}}

5、后台代码就写好了,部署到Tomcat服务器上,就可以用浏览器测试一下了。

可以用localhost:8080来测试,也可以用内网穿透来做。
我客户端用的是花生壳的内网穿透。
有下图显示,就证明服务器后台编写成功了。

客户端的编写

1、新建Android工程。

2、首先先搞一下相关的配置,免得搞着就忘了。
2.1

先设置联网许可

<uses-permission android:name="android.permission.INTERNET"/>

2.2在AndroidManifest.xml的application节点下加
android:usesCleartextTraffic=“true”
因为我们是http请求,不太安全,版本比较高的话,是不支持的,所以需要进行设置一下

android:usesCleartextTraffic="true"

2.3添加依赖。有很多用的都是Volley,我也用了,不过搞出来的范湖数据都是乱码,没搞明白,就不用了,如果有哪位大神能给解决,就感激不尽了。我这里用的是别人封装好的okhttputils。
如果有比较好的封装库,也可以给我推荐下,独乐了不如众乐乐,对吧嘿嘿

implementation 'com.alibaba:fastjson:1.1.71.android
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
implementation 'com.zhy:okhttputils:2.6.2'

3、okhttputils的使用。先创建一个MyAplication的java.class文件,并继承Aplication,然后重写onCreate()。

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();OkHttpClient okHttpClient = new OkHttpClient.Builder().connectTimeout(10000L, TimeUnit.MILLISECONDS).readTimeout(10000L, TimeUnit.MILLISECONDS).build();OkHttpUtils.initClient(okHttpClient);}
}

然后在AndroidManifest.xml的application节点下加android:name=".MyApplication"(我忘了加这个,好像也成功了,不过最好还是加一下)

android:name=".MyApplication"

4、编写界面。因为是测试,所以代码什么的就写的有点随意,见谅哈。
点击登录,就进行数据的post,并进行跳转。
查询按钮,连接了服务器的一个json文件,是测试是否能正常连接数服务器的并获取数据的(可以忽略)。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:text="账号"android:textSize="30sp"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/username"android:layout_width="match_parent"android:layout_height="50sp"/><TextViewandroid:text="密码"android:textSize="30sp"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="50sp"/><Buttonandroid:id="@+id/login"android:text="登录"android:layout_width="match_parent"android:layout_height="50sp"/><Buttonandroid:id="@+id/bt_look"android:text="查询"android:layout_width="match_parent"android:layout_height="50sp"/><TextViewandroid:id="@+id/tv_look"android:text="显示"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</LinearLayout>

5、Login活动的代码。一些不重要的代码我就删除了。介绍就看注释吧

package com.example.volley;import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import org.json.JSONException;
import org.json.JSONObject;
import okhttp3.Call;public class Login extends AppCompatActivity {private EditText username;private EditText password;private Button login;private TextView tv_look;private Button bt_look;String result;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);initView();login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取控件里的数据final String name = username.getText().toString().trim();final String pass = password.getText().toString().trim();//我的内网穿透的连接,需要改成自己的ip连接(可以是局域网的)String url = "http://3178.wicp.vip/Test/Hello";///刚刚看的别人封装的库OkHttpUtils.get().url(url)//加入用户名和密码,注意Username和Password和服务器端相一致.addParams("Username", name).addParams("Password", pass).build().execute(new StringCallback() {@Overridepublic void onError(Call call, Exception e, int id) {tv_look.setText("请求失败" + e);}//请求成功的方法@Overridepublic void onResponse(String response, int id) {try {//注意params,与服务器返回的数据相一致/** 将返回的String转化成JSONObject,然后获取params数据* */JSONObject object = (JSONObject) new JSONObject(response).get("params");//得到Result的数据result = object.getString("Result");tv_look.setText("请求成功==" + result);} catch (JSONException e) {e.printStackTrace();}//判断返回的数据是成功该是失败if (result.equals("success")) {//做自己的登录成功操作,如页面跳转//可以换成Toast或者tv_look.setTextIntent intent = new Intent(Login.this,MainActivity.class);//给下一个活动产地数据intent.putExtra("name",name);startActivity(intent);} else {//做自己的登录失败操作,如Toast提示//toas();}}});}});}private void toas() {Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();}private void initView() {username = findViewById(R.id.username);password = findViewById(R.id.password);login = findViewById(R.id.login);tv_look = findViewById(R.id.tv_look);bt_look = findViewById(R.id.bt_look);}
}

6、其他的就不写了,对于传递的数据,这样就可以获取了。

Intent intent = getIntent();String username=intent.getStringExtra("name");

结语

到这里就结束了,java环境的配置,项目部署到服务器,我都不介绍了,如果是在找不到方法,再找我哈。如果有什么问题的,欢迎留言,我会尽可能的帮助解决(如果我不会的,就不要问哈,问就是不会哈哈)

搭建Android应用程序的服务器相关推荐

  1. 搭建微信小程序HTTPS服务器

    微信小程序是目前热门,学习及应用的人非常多,但很多人不知道小程序接口域名HTTPS怎么做,下面我们将详细介绍搭建微信小程序每一个步骤,希望可以快速的帮助你如何搭建微信小程序与HTTPS服务器. 一.申 ...

  2. Linux服务器Android环境配置,基于BusyBox+LinuxDeploy+JuiceSSH搭建Android上的Linux服务器教程...

    一.首先准备一部具有root权限的安卓机 1.Busybox(apk) BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell ...

  3. 第二章:搭建Android开发环境(读后感)

    在此章节中只要介绍了Android底层开发环境的搭建,其中包括了Android应用程序开发环境.Android NDK开发环境和交叉编译环境的搭建! 1:JDK的安装 (1)下载JDK的压缩包(tar ...

  4. 第二章 搭建Android开发环境 读书笔记

    本章主要介绍了Ubuntu Linux环境下的Android开发环境的配置.搭建Android底层开发的环境,主要包括Android的应用程序开发环境.Android NDK开发环境和交叉编译环境的搭 ...

  5. 阿里云服务搭建微信小程序开发环境

    最近微信小程序异常火爆,很多人在学习,下面带着大家搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础即可,微信推荐使用的语言,无 ...

  6. 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )

    文章目录 安卓直播推流专栏博客总结 一. 服务器搭建 二. 手机端推流 三. 电脑端观看直播 四. RTMP 服务器端状态 安卓直播推流专栏博客总结 Android RTMP 直播推流技术专栏 : 0 ...

  7. 关于微信小程序Tomcat服务器后端程序搭建

    关于Tomcat服务器小程序Java后端搭建 微信小程序采用的向服务器发送请求的api可以先看一下 wx.request(OBJECT) 发起网络请求. 这里重点关注data和url以及datatyp ...

  8. 快速搭建Android应用后台服务器

    一直没单独一个人搭建过后台,之前都是用的云服务后台,跟着帖子一步一步走,最终完美实现后台与移动端的数据沟通,顿时感觉棒棒哒,特此记录一下.很感谢下面帖子的博主得无私分享! 一.后台的搭建 1.自己动手 ...

  9. 基于阿里云搭建微信小程序服务器(HTTPS)

    https://www.jianshu.com/p/132eed84bc4f 本来是想写基于腾讯云搭建微信小程序服务器的,可惜腾讯云让我有点不好的体验,所以就先放弃使用腾讯云了.所以转而在阿里云上注册 ...

最新文章

  1. python中字符串格式化%与.format
  2. 微信公众号的分享功能
  3. Centos环境docker的正确安装及疑难杂症
  4. 利用 Android Studio 和 Gradle 打包多版本APK
  5. ubuntu部署git
  6. c ++明明的随机数_从列表C ++程序中随机建议电影
  7. 华为鸿蒙os系统转正,华为鸿蒙OS系统正式官宣,转正工作提上日程,明年多款终端将使用...
  8. ArcGIS绘图注意事项(1)
  9. 记一次网络访问故障排查
  10. python加法运算符_python 入门之 – 基本运算符(七)
  11. 独创圆柱形投影,索尼高透光HOE全息显示方案详解
  12. usb无线网卡断线后找不到网络
  13. pathinfo 伪静态 详细解析PATH_INFO 和 ORIG_PATH_INFO技术分享
  14. Linux+宝塔安装swoole教程
  15. 新能源汽车:选择“内卷”还是抓住大势东风?
  16. 基于MPLS的虚拟专用网络 应用场景
  17. arcgis for android(十)地理(电子)围栏实现
  18. 在html 中插入优酷视频
  19. 【毕业设计】基于微信小程序的购物商城系统
  20. 黑苹果】宏基Acer A715 威武骑士+i5-9300H+GTX1650+Macos15.3EFI文件下载

热门文章

  1. 液晶拼接屏仍然是安防监控的应用领域
  2. Macbook M1开启允许任意来源应用
  3. BITCS2016程序设计 | 9. 一夜发白 《千字文》
  4. 矩阵分析L1 线性空间基础
  5. manjaro docker安装使用
  6. OCJP 考试题之七
  7. MQTT+ActiveMQ实现消息推送(移动端)
  8. 无为才能够无不为-曾仕强
  9. 初夏,开源魔改一个带击杀音效的电蚊拍!
  10. 为什么加密货币投资者正在放弃他们的美国公民身份