精华内容
下载资源
问答
  • 主要为大家详细介绍了Android客户端与服务端交互之登陆示例,感兴趣的小伙伴们可以参考一下
  • android客户端与服务端交互简单登录实现; 客户端是androidstudio 是module不是project; 服务端是eclipse; 修改下url就可以用了。
  • Android客户端与服务端的JSON交互数据的实现,实现了客户端与服务端交互JSON数据的实现,有比较好的学习意义,积分也比较少
  • 057集-Android客户端与服务端交互-服务端代码视频教程,很是不错哦,有兴趣的可以学习下。
  • 059集-Android客户端与服务端交互-客户端POST方式查询,很不错的视频教程,有兴趣的可以学习下。
  • 058集-Android客户端与服务端交互-客户端GET方式登录,很不错的视频教程,有兴趣的可以学习下。
  • 博客 Android客户端与服务端(jsp)之间json的传输解析【附效果图附源码】用的源码,欢迎大家下载!
  • 对于Android客户端与服务端的交互,首先我们要了解它的数据包的格式: 它分为请求数据包和响应数据包两种: 请求数据包的格式为: 1>请求行  GET /android_jsp/findFlights.jsp HTTP/1.1  GET(POST):请求方式...

        对于Android客户端与服务端的交互,首先我们要了解它的数据包的格式:

    它分为请求数据包和响应数据包两种:

    请求数据包的格式为:

    1>请求行
     GET  /android_jsp/findFlights.jsp  HTTP/1.1
      GET(POST):请求方式
      /android_jsp/findFlights.jsp: 请求资源路径
      HTTP/1.1: 协议的类型与版本


    2>若干消息头 Header
      key:value
     
     key:value
     
     key:value
    用于告诉服务端 客户端的状态及客户端传递数据的状态信息。 


    3>请求实体
      主要用于在POST请求下存放请求参数数据。
     
    例如:name=zs&pwd=12345


    响应数据包的格式

    1>状态行
      HTTP/1.1  200  OK
      HTTP/1.1: 协议的类型与版本 
      200: 状态码
      OK: 状态描述


    2>若干消息头
      key:value
      key:value
      key:value
      通过这些消息头告诉客户端服务端的状态及服务端 传递参数的状态信息。


    3>响应实体
      用于存储具体的响应数据。


    从请求行中我们可以知道,请求方式分为两种GET和POST,那么他们有什么区别那:

    1>请求参数的存放位置
      GET:  请求资源路径后用?拼接
      POST: 请求数据包的请求实体中
    2>是否适合传递中文
      GET:  不适合  
      POST: 适合
    3>是否适合大数据量提交
      GET:  不适合
      POST:适合
    4>安全性
      GET:  相对不安全
      POST: 相对安全



    关于数据交互的两种基本请求方式已经一本了解了,那么具体的基本请求格式是什么那,下面就进行介绍:

    如何使用Android代码发送HTTP GET请求?
    1>创建URL对象:
      URL url = new URL("http://ip:port/app/path");
    2>通过URL对象获取HttpUrlConnection:
      HttpUrlConnection conn=(强转)url.openConnection();
    3>发送请求并且获取响应输入流:
      is=conn.getInputStream(); (网络操作,耗时)
    4>is就是服务端返回的响应实体数据.
      把输入流中的数据读取出来,获取响应字符串。
    5>解析响应字符串。




    如何使用Android代码发送HTTP POST请求?
    1>创建URL对象
      URL url = new URL("http://xxxxx");
    2>创建HttpURLConnection对象
      conn = url.openConnection();
    3>设置请求方式与消息头 (Content-Type)
      conn.setRequestMethod("POST");
      conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); 
    //(multipart/form-data)

    4>设置开启输出流
      使用输出流输出请求参数
      conn.setDoOutput(true);
      os = conn.getOutputStream();
      os.write("date=2016&numer=No.1111".getBytes());
      os.flush()
    5>调用conn.getInputStream()发送请求并且获取响应
      is=conn.getInputStream()
    6>解析响应数据,获取响应文本
      is转换为String

    展开全文
  • 实践Android客户端与服务端之间使用JSON交互数据。 具体操作请查看:【Android 开发】: Android客户端与服务端之间使用JSON交互数据。这个案例,已经教会你配置服务端和客户端两者结合,用json作为媒介,进行通信...

    实践Android客户端与服务端之间使用JSON交互数据。

    具体操作请查看:【Android 开发】: Android客户端与服务端之间使用JSON交互数据。这个案例,已经教会你配置服务端和客户端两者结合,用json作为媒介,进行通信了。不过会发现一个问题:最终是得不到logcat中的结果,还有服务端的JsonAction,要实例化才可以用,否则会报空指针的异常
    经过查找,首先在HttpUtils类中的catch出进行捕获异常的输出e.printStackTrace();,只能说博主太粗心了,连异常都不捕获,难为我们这些学习者,半天都不知道哪里错,因为没有错误提示。
    然后,你会发现:在logcat中:会发现异常,不过,是被指定为警告类型(黄色,不是红色)TAGSystem.error,错误为android.os.NetworkOnMainThreadException。报错的位置是这个int code = connection.getResponseCode(); // 返回状态码
    经过一番百度+谷歌才知道问题的所在,实在不知道博主是怎么运行起来,可能是这篇文章的久远性吧,在安卓2.3还是行的,后面的系统就不可以了。有两种解决方法:

    • 一种是线程,开一个线程去解决网络请求。对于后期的开发,这个是最好的解决方法,因为使用网络会有很多的变数,对于同类型的操作可以进行整合。(扩展到断点的下载)
    • 一种是使用StrictMode类,是谷歌从在android2.3版本以后,系统增加的类,专门用于:对网络的访问方式进行了一定的改变
      • 介绍:StrictMode通常用于捕获磁盘访问或者网络访问中与主进程之间交互产生的问题,因为在主进程中,UI操作和一些动作的执行是最经常用到的,它们之间会产生一定的冲突问题。将磁盘访问和网络访问从主线程中剥离可以使磁盘或者网络的访问更加流畅提升响应度和用户体验。
      • 关于StrictMode的详细用法,请查阅Android最佳实践之:StrictMode介绍。我的理解,StrictMode就是一种试调的模式,检查Android应用程序的性能和存在的潜在问题
      • 如何解决问题呢?只需要在Activity或者应用程序开始的application的oncreate方法中添加
          StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() 
                  .detectAll() 
                  .penaltyLog() 
                  .penaltyDialog() 打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
                  .build()); 
          StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll() 
                  .penaltyLog() 
                  .build());
        
        并且在配置文件中将SDK的最低等级设为11。当然可以封装成一个方法的形式
          public static void closeStrictMode() {
          StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
          .detectAll().penaltyLog().build());
          .....
          }
        
    • 知识延伸:http协议:HTTP协议详解(真的很经典)

    展开全文
  • Android客户端是如何与服务端的数据进行交互的呢? 一般就是客户端向服务端发送请求,服务端对数据进行相关处理,返回json数据返回给客户端,客户端再进行相关操作。 说明:主要是用登录功能来进行详解 一、服务端 1...

    Android客户端是如何与服务端的数据进行交互的呢?
    一般就是客户端向服务端发送请求,服务端对数据进行相关处理,返回json数据返回给客户端,客户端再进行相关操作。
    说明:主要是用登录功能来进行详解
    一、服务端
    1、新建maven项目,新建完项目之后,会报错,需要要改一些修改相关配置文件,过程就不详解了。
    2、建立相关的包,通过mybatis-generator-gui工具生成po,dao,mapping文件
    3、在dao(mapper),service,service实现类中写相关的方法,mapping中写相关的SQL语句。
    Controller层写登录的方法,主要是通过账号和密码进行登录,判断客户端传过来的数据不为空,根据账号查询账户信息,将查询出来的对象保存到session中,登录成功后利用Gson返回json数据,如下:

    @Controller
    @RequestMapping("/app/manager")
    public class AppManagerController {
    private final String SESSION_MANAGER = "sessionManager";
    	private Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
    	//注入service层
    	@Autowired
        IShopManagerService shopManagerService;
        /**
    	 * 密码登录
    	 * @param phone		手机号
    	 * @param password  密码
    	 * @return
    	 */
    	@ResponseBody
    	@RequestMapping(value="/loginByPassword",produces = "application/json;charset=UTF-8")
    	public Object loginByPassword(String phone,String password) {
    		JsonReturn jsonReturn=new JsonReturn();
    		if(Tools.isNotNull(phone) && Tools.isNotNull(password)) {
    			ShopManagerVomanagerVo=this.shopManagerService.findManagerVoByPhone(phone);
    			if(managerVo!=null) {
    				HttpSession session=request.getSession();
    				if(password.equals(managerVo.getPassword().trim())) {
    					//登录成功
    					//将managerVo放入session
    					session.setAttribute(SESSION_MANAGER, managerVo);
    					jsonReturn.setCode(200);
    					jsonReturn.setText("登录成功");
    					jsonReturn.setData(managerVo);
    				}else {
    					jsonReturn.setCode(502);
    					jsonReturn.setText("密码不正确");
    				}
    			}else {
    				jsonReturn.setCode(501);
    				jsonReturn.setText("该手机号未注册");
    			}
    		}else {
    			jsonReturn.setCode(500);
    			jsonReturn.setText("参数异常");
    		}
    		return gson.toJson(jsonReturn);
    	}
    }
    

    二、Android客户端
    1、新建Android项目,搭建登录界面。
    2、创建Activity类,设置布局,获取界面相关控件,然后初始化页面,初始化页面中对相 关参数进行设置,获取服务端的url,获取账户头像;主要是通过ServiceUrls这个工具类 来获取服务端的方法,在这里要注意的是用实体机调试时,serviceUrl需要改为我们所 连接的WiFi网络的IP地址,加上端口号和服务端项目的名称。

    private static String serviceUrl="http://192.168.43.47:8080/PharmacyService/";
    

    在这里插入图片描述

     private static String urlPostfix=".do";
     //获取 AppManagerController 方法的路径
     public static String getManagerMethodUrl(String method){
     	return serviceUrl+"app/manager/"+method+urlPostfix;
     }
    

    初始化页面代码:主要是判断账户是否登录,通过MyApplication来进行获取登录信息,如果没有登录,则加载默认的头像。

    //初始化页面
    private void initView() {
        manager=myApplication.getLoginManager();
        //加载用户信息
        String photoUrl="";
        boolean sex=true;//true 男性;false 女性
        if(myApplication.isLogin()){
            //加载性别信息
            sex=manager.getSex();
            //获取头像信息
            String photo=manager.getPhoto();
    	photoUrl=ServiceUrls.getManagerMethodUrl("getManagerPicture")+"?pictureName="+photo;
        }
        //使用Glide加载头像信息
        //设置头像加载失败时的默认头像
        int icErrorResourceId=sex?R.drawable.ic_default_man:R.drawable.ic_default_woman;
        Glide.with(this)
             .load(photoUrl)
             .apply(headerRO.error(icErrorResourceId))
             .into(ivHeaderImage);
     }
    

    MyAppliction代码:
    在这里插入图片描述
    3、设置事件监听事件,登录按钮设置点击事件,获取账号和密码,验证数据,获取服务端 的URL方法,通过Map键值对的方式赋值,然后通过OKHttpTool工具类发送请求到服务端, 创建回调 方法,以线程的方式再返回到客户端,获取返回的状态码是否登录成功,如果成 功则将账户信息保存到Application中,否则弹出错误信息。

    //设置控件事件
    private void setViewEventListener() {
    btnSubmit.setOnClickListener(new View.OnClickListener() {//登录
          @Override
          public void onClick(View v) {
            //获取参数
            Stringphone=etPhone.getText()==null?"":etPhone.getText().toString();
            String password=etPassword.getText()==null?"":etPassword.getText().toString();
            //验证数据
            if(!Tools.isMobile(phone)){
                etPhone.setError("请输入正确的手机号");
                return;
            }
            if(!Tools.isNotNull(password)){
                etPassword.setError("请输入密码");
                return;
            }
            //===发送请求
            //url
            String url=ServiceUrls.getManagerMethodUrl("loginByPassword");
            //参数
            final Map<String,Object> map=new HashMap<>();
            map.put("phone",phone);
            map.put("password", MD5Util.getMD5(password));
            //发送请求
            OkHttpTool.httpPost(url, map, new OkHttpTool.ResponseCallback() {
                @Override
                public void onResponse(final boolean isSuccess, final int responseCode, final String response, Exception exception) {
                    mActivityContext.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            String strText="无法连接服务器,请检查网络连接";
                            if(isSuccess && responseCode==200){
                                try {
                                   JSONObject jsonObject=new JSONObject(response);
                                    int code=jsonObject.getInt("code");
                                    strText=jsonObject.getString("text");
                                    if(code==200){
                                      String strData=jsonObject.getString("data");
                                      ManagerBean managerBean=gson.fromJson(strData,ManagerBean.class);
                                        if(managerBean!=null){
                                        //将用户信息保存到Application(内存)
     		              				myApplication.setLoginManager(managerBean);
    			     					//保存登录的手机号和密码
    			     				    //!!!实际项目中编码这样做,安全性不高
    								    SPUtils.put(mActivityContext,ServiceUrls.SP_MANAGER_PHONE,managerBean.getPhone()
    					                .trim());
    					                SPUtils.put(mActivityContext,ServiceUrls.SP_MANAGER_PASSWORD,managerBean.
    			    					getPassword().trim());
           			    				initView();
                                     }else {
                                         strText="登录失败";
                                     }
                                   }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
    						Toast.makeText(mActivityContext,strText,Toast.LENGTH_LONG).show();
                        }
     	      	 });
           });
    });
    

    OKHttpTool代码:
    在这里插入图片描述
    在这里插入图片描述
    注意:必须在AndroidManifest.xml文件中设置打开网络请求,不然是没法和服务端进行交互的。还有xml中网络的设置, 以及在build.gradle中的相关引用

    <!--允许程序打开网络套接字-->
     <uses-permission android:name="android.permission.INTERNET" />
    
    <network-security-config>
        <!--开发中可以考虑使用-->
        <!--Android API 28 关闭HTTPS服务器监测-->
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    
    //gson
    implementation 'com.google.code.gson:gson:2.8.6'
    //网络请求
    implementation 'com.squareup.okhttp3:okhttp:4.4.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.4.0'
    //glide图片加载框架
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    //glide 图片转换框架
    implementation 'jp.wasabeef:glide-transformations:3.3.0'
    //图像裁剪 (https://github.com/Yalantis/uCrop) 需要先配置 maven { url "https://jitpack.io" }
    implementation 'com.github.yalantis:ucrop:2.2.4'
    

    效果
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 前面我们有提到google的Gson技术的介绍[GSON 数据格式详解],这一讲我们来详细学习一下Android客户端与服务端之间使用GSON进行JSON数据的解析,关于GSON的技术我们已经在前面两讲中提到过,对GSON不了解的读者可以先去...

        前面我们有提到google的Gson技术的介绍[GSON 数据格式详解],这一讲我们来详细学习一下Android客户端与服务端之间使用GSON进行JSON数据的解析,关于GSON的技术我们已经在前面两讲中提到过,对GSON不了解的读者可以先去看前面两讲的博文,这一讲我们主要学习一下使用GSON方式来完成Android客户端与服务端之间的JSON数据的交互,具体的实现Demo我们会在上面一讲[Android客户端与服务端之间使用JSON交互数据]的Demo架构上进行修改,读者在看这一部分的内容的时候可以从上面一讲中看起。

        这一讲我们主要来实现一下使用Gson完成JSON字符串与Java对象之间的转换,如下图所示

    一. 服务端:作用是使用GSON将服务端的对象转换成JSON数据格式

    我们服务端主要是基于上一讲的解析JSON的服务端架构进行修改,读者可以先看完上一讲内容再参考此文。

    1. 添加gson的jar库到lib目录下
    2. 查看GSON API com.google.gson.Gson类,这个是最经常使用的类

    This is the main class for using Gson. Gson is typically used by first constructing a Gson instance and then invoking toJson(Object) or fromJson(String, Class) methods on it. 

    3. 代码如下

    1). JSONTools.java 上进行修改,修改如下所示

        /**
         * @param value :JSON 名值对中的值,值可以有多种类型
         * @return
         */
        // 使用Gson方式接受对象转换为JSON数据格式并且作为字符串输出.
        public static String createJsonString(Object value){
            Gson gson = new Gson();
            String str = gson.toJson(value);
            return str;
        } 

       这边做这个修改主要是因为在GSON中将Java对象转换成JSON字符串的时候是不带key的值,这一点与上一讲中讲JSON字符串的形式是不一样的

    2). 在JsonAction.java 上做对应的调用修改

            // 根据不同的参数输出不同的JSON数据
            String jsonString = "";
            String action_flag = request.getParameter("action_flag");
            if(action_flag.equals("person")) {
                jsonString = JsonTools.createJsonString(service.getPerson());
            } else if(action_flag.equals("persons")){
                jsonString = JsonTools.createJsonString(service.getListPerson());
            } else if(action_flag.equals("listString")) {
                jsonString = JsonTools.createJsonString(service.getListString());
            } else if(action_flag.equals("listMap")){
                jsonString = JsonTools.createJsonString(service.getListMaps());
            }

    3). 在浏览器地址栏中访问查看是否返回JSON数据,下面就贴出一个例子,另外几个读者可以自己参考根据参数的不同去尝试。

    地址栏输入:http://192.168.0.112:8080/JsonProject/servlet/JsonAction?action_flag=listMap
    返回:[{"id":1,"color":"red","name":"Polu"},{"id":7,"color":"green","name":"Zark"}]

    说明服务端的使用GSON将对象转换成JSON数据格式成功了

    二. 客户端:工作是利用GSON将服务端转换好的JSON字符串转换成指定的对象。

    1. 导入gson库

    这里有一个简单的方法构建jar库,在项目工程上右击 --> new --> Folder --> 取名libs,然后将gson的jar包复制进去(如果已经存在libs文件夹则直接复制进去)然后选中所有导入的jar包右击 --> Build Path --> Add to Build Path 即可。

    2. 程序Demo

    1). GsonTools.java

    package com.android.gsonproject.gson;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import com.google.gson.Gson;
    import com.google.gson.reflect.*;
    public class GsonTools {
    
        public GsonTools() {
        
        }
    
        /*
         * 查看Gson api其中的fromJson(String json, Class<T> classOfT)方法
         * public <T> T fromJson(String json, Class<T> classOfT)
         * 用来描述一个特殊的Json对象,使用反射机制可以将JSON字符串中包含的内容赋值给指定的类。这边的T表示的是通过泛型,也就是可以表示任意的类型。
         * 参数说明:
         * json : 指定对象解析过的JSON字符串源,用来转换回Java对象。
         * classOfT : 泛型   T 的Class对象。
         */
        public static <T> T getPerson(String jsonString, Class<T> cls){
            T t = null;
            try {
                Gson gson = new Gson();
                t = gson.fromJson(jsonString, cls);
            } catch (Exception e) {
                // TODO: handle exception
            }
            return t;
        }
        
        /*
         * List 我们使用的Gson中的
         * public <T> T fromJson(String json, Type typeOfT)
         * 这边我们需要取到List<T>中不同的对象,普通的实现方式就如上一讲中org.Json库来解析JSON的方式一样(读者阅读上一讲内容),
         * 这里我们通过 Gson中的 TypeToken类是简便操作:这边typeOfT的用法是通过反射机制把T里面的对象的属性的值映射出来,然后通过将json字符串取得的值赋值上去就可以了。
         * getType()的意思就是表示将jsonString的字符串解析出来之后封装到List集合中,然后分别从T里面取出类型将其复制。
         */
        
        public static <T> List<T> getPersons(String jsonString, Class<T> cls){
            List<T> list = new ArrayList<T>();
            try {
                Gson gson = new Gson();
                list = gson.fromJson(jsonString, 
                        new TypeToken<List<T>>(){}.getType());
            } catch (Exception e) {
                // TODO: handle exception
            }
            return list;
        }
        
        public static List<String> getList(String jsonString){
            List<String> list = new ArrayList<String>();
            try {
                Gson gson = new Gson();
                list = gson.fromJson(jsonString, 
                        new TypeToken<List<String>>(){}.getType());
            } catch (Exception e) {
                // TODO: handle exception
            }
            return list;
        }
        
        public static List<Map<String, Object>> getListMaps(String jsonString){
            List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
            try {
                Gson gson = new Gson();
                list = gson.fromJson(jsonString, 
                        new TypeToken<List<Map<String, Object>>>(){}.getType());
            } catch (Exception e) {
                // TODO: handle exception
            }
            return list;
        }
    }
    2). MainActivity.java
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.person:
                    String path = "http://192.168.0.112:8080/JsonProject/servlet/JsonAction?action_flag=person";
                    String jsonString = HttpUtils.getJsonContent(path);
                    Log.i(TAG, "The jsonString:" + jsonString);
                    Person person = GsonTools.getPerson(jsonString, Person.class);
                    Log.i(TAG, "The person:" + person.toString());
                    break;
    
                case R.id.persons:
                    String path2 = "http://192.168.0.112:8080/JsonProject/servlet/JsonAction?action_flag=persons";
                    String jsonStr2 = HttpUtils.getJsonContent(path2);
                    Log.i(TAG, "The jsonString:" + jsonStr2);
                    List<Person> list = GsonTools.getPersons(jsonStr2, Person.class);
                    Log.i(TAG, "The person:" + list.toString());
                    break;
                    
                case R.id.liststring:
                    String path3 = "http://192.168.0.112:8080/JsonProject/servlet/JsonAction?action_flag=listString";
                    String jsonStr3 = HttpUtils.getJsonContent(path3);
                    Log.i(TAG, "The jsonString:" + jsonStr3);
                    List<String> list3 = GsonTools.getList(jsonStr3);
                    Log.i(TAG, "The person:" + list3.toString());
                    break;
                    
                case R.id.listmap:
                    String path4 = "http://192.168.0.112:8080/JsonProject/servlet/JsonAction?action_flag=listMap";
                    String jsonStr4 = HttpUtils.getJsonContent(path4);
                    Log.i(TAG, "The jsonString:" + jsonStr4);
                    List<Map<String, Object>> list4 = GsonTools.getListMaps(jsonStr4);
                    Log.i(TAG, "The person:" + list4.toString());
                    break;
            }
        }

    3. [备注知识]

    我们这里使用的Class<T>是一个什么概念?

      老罗的说法:由于服务端和客户端所解析的对象虽然是一致的,但是必须要满足不管服务端传递什么对象,客户端只要知道服务端传递的对象类型,就可以解析出来的。(他的表述我听的很混)

      我自己的理解:Android客户端需要解析服务端的不同类型的对象,所以这边使用泛型来表示,而无论一个类new出多少个对象,它们对应的class对象是一致的(这点是Java的反射机制决定的),而Gson也运用了Java的反射机制,所以这边的 classOfT参数的意思是 T类型的class对象。

    四. 编译执行结果

    1. 界面如下所示

    2. 第一个按钮

    3. 第二个按钮

    4. 第三个按钮


    5. 第四个按钮


       由于整个工程都是基于上一讲Json数据解析来修改和串讲的,读者在单独看这一部分的内容会有迷糊,建议读者可以阅读上一篇博文,然后在看Gson的数据解析这样效果会好很多。

    在这里贴出本文的源代码:

    客户端:http://download.csdn.net/my

    服务端:http://download.csdn.net/my






    展开全文
  • android客户端服务端怎么交互解析json数据呢?完全没有写过服务端,也没有用过json,求一个详细的解答!网上搜到的案例都不怎么全,跪求!
  • 各位大神,我想用两个fragment制作两个页面,一个页面(fragment1)实现服务器与客户端的连接,另一个(fragment2)实现收发数据,但fragment2的代码应该要建立在客户端与服务器的连接上对吧,请问代码该怎样写呢?...
  • ch09_uploadfile 为android 端 upload_file_service 为服务端 主要实现android服务端上传文件。以及下载文件夹或单个文件 有进度条显示
  • android 客户端服务端的相互通信
  • 对于android请求服务端,经常会把接口暴露,例如 http://www.myweb.com/api.php 别人就能通过这些个接口,使用浏览器的方式,对服务端恶意注入数据,大家有没有好的解决方法来解决这个问题啊
  • android客户端App与服务端的数据传递,中文若不进行处理常常会出现乱码,这篇短文简单介绍如何用utf8进行中文(简体、繁体、简繁混杂)及其他语系的参数传递,避免出现乱码现象。
  • 在前面的两讲中,我们讲解了JSON数据格式的一些基本知识,以及做一些小Demo,这一讲我们在前面的基础上来做一个综合的可扩展的Demo,主要是针对Android客户端解析服务端传递过来的JSON数据。
  • 众所周知,一般软件都会有客户端和服务端以及数据库三大方面互相支持的,我的疑惑就是,能不能把后者给省去呢?...就是直接在服务端存储数据,然后也可以与android客户端实现交互。请问有类似的demo吗?谢谢!
  • androrid android studio 后台接口 后台 服务 数据库 前端交互 post
  • 我想实现把所有的产品信息缓存到本地,方便在没有网络的时候使用。该产品信息中包含了产品介绍文本、产品展示图片(有多张)、产品展示视屏。 目前考虑的是通过增量的方式来实现数据同步,每隔一定时间把增量打包...
  • android客户端向服务器通信一般有以下选择: 1.传统的java.net.HttpURLConnection类 2.apache的httpClient框架(已纳入android.jar中,可直接使用) 3.github上的开源框架async-http(基于httpClient) ----------...
  • 第6章 Android客户端与服务端交互;本讲目标;概述;服务端的主要技术;Android客户端服务端交互过程;HTTP协议GET和POST;提示;两类应用的比较;JSON;JSON的两种典型格式;Android客户端如何发送GET或POST请求;如何把数据...
  • android客户端+服务端

    2014-11-20 17:11:23
    android 客户端+服务端 客户端接收服务端发来的消息
  • 最近有个项目需要用到json的传输,之前不是太了解,在网上找了些相关资料,写了一个小小的demo,可以实现基本功能:android客户端发送json到服务端服务端使用jsp接收,解析后以json的形式返回给客户端,客户端接收...
  • Android客户端服务端之间通过Socket收发文字和图片数据
  • 用php做服务端的一个android版菜谱精灵

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,101
精华内容 25,240
关键字:

android客户端与服务端