• 大二下学期团队项目(app端与服务器端数据交互)


    今日主要学习了app端与服务端进行数据交互。

    主要利用xutils3来实现网络传输,需要引入xUtils3,在build.gradle中添加

    compile 'org.xutils:xutils:3.5.0'

    1.下载图片,视频,音乐等

    public void downloadFile(){
    //请求的地址 RequestParams params
    = new RequestParams("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Fca3c577fca3ed067015ba144d11c4bcdd61348c4.jpg&refer=http%3A%2F%2Fi0.hdslb.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621306046&t=66837f7202d0d974bd0be653b2754dea"); //要保存的位置
    params.setSaveFilePath(Environment.getExternalStorageDirectory()
    +"/test_download/YLY.jpg");
    // params.setCancelFast(
    true); params.setAutoRename(true);
    //断点续传 params.setAutoResume(
    true);
    //线程池,可以加快下载速度 params.setExecutor(
    new PriorityExecutor(3,true));
    //带进度条的下载 x.http().get(params,
    new Callback.ProgressCallback<File>() { @Override public void onWaiting() { Log.e("TAG","onWaiting"); } @Override public void onStarted() { Log.e("TAG","onStarted"); } @Override public void onLoading(long total, long current, boolean isDownloading) { progressbar.setMax((int)total); progressbar.setProgress((int)current); Log.e("TAG","onLoading=="+current+"/"+total+",isDownloading=="+isDownloading); } @Override public void onSuccess(File result) { Log.e("TAG","onSuccess=="+result.toString()); Toast.makeText(xUtils3TestActivity.this,"下载完成",Toast.LENGTH_LONG).show(); } @Override public void onError(Throwable ex, boolean isOnCallback) { Log.e("TAG","onError=="+ex.toString()); } @Override public void onCancelled(CancelledException cex) { Log.e("TAG","onCancelled=="+cex.toString()); } @Override public void onFinished() { Log.e("TAG","onFinished"); } }); }

    2.上传数据到服务器

    RequestParams params = new RequestParams("http://10.92.5.115:8080/BuyIII/BusinessManServlet");
            //params.setMultipart(true);
            params.addBodyParameter("itemid","1234");
            params.addBodyParameter("itemname","写入数据库测试");
            params.addBodyParameter("itemprice","1000");
            params.addBodyParameter("itemnum","1000");
            //params.addBodyParameter("File",new File(Environment.getExternalStorageDirectory()+"/test_download/YLY.jpg"),null,"YLY.jpg");
            x.http().post(params, new Callback.CacheCallback<String>() {
    
                @Override
                public boolean onCache(String result) {
                    return false;
                }
    
                @Override
                public void onSuccess(String result) {
                    Toast.makeText(xUtils3TestActivity.this,"上传完成",Toast.LENGTH_LONG).show();
                }
    
                @Override
                public void onError(Throwable ex, boolean isOnCallback) {
                    Log.e("TAG","onError=="+ex.toString());
                }
    
                @Override
                public void onCancelled(CancelledException cex) {
                    Log.e("TAG","onCancelled=="+cex.toString());
                }
    
                @Override
                public void onFinished() {
                    Log.e("TAG","onFinished");
                }
            });

    跟下载很类似,addBodyParameter添加要传输的数据,可以为文件或字符数据,Callback.CacheCallback<String>()这里要做相应的改变,并注意改为post请求。

  • 相关阅读:
    miniui mini-combobox的使用
    xsd文件记录
    Hibernate 一次查询分多次返回 避免内存溢出
    卡口扩展信息
    删除 maven仓库,更新失败的jar包命令
    杀windows进程
    layer 遮罩层等待
    math() 对象
    JavaScript 字符串方法
    JavaScript 数组遍历方法;
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14674652.html
Copyright © 2020-2023  润新知