大二下学期团队项目(app端web请求)

今日想要完成手机端请求web服务器接受数据,显示到手机端,使用xUtils3

发送请求,接受web服务器发回来的json数据,但是app无法请求成功本机的flask项目,连接到同一网络,关闭防火墙,请求本机的地址,还是无法访问。

明日讲重点解决这一问题,并将其他队员修改后的前端界面与自己的后台进行连接。

package com.example.cloudlibrary;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;
import org.xutils.common.Callback;
import org.xutils.common.task.PriorityExecutor;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.io.File;

public class xUtils3TestActivity extends AppCompatActivity implements View.OnClickListener{
    private Button test_download;
    private ProgressBar progressbar;
    private Button test_upload;
    private TextView test_text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_x_utils3_test);
        test_download=(Button)findViewById(R.id.test_download);
        progressbar=(ProgressBar)findViewById(R.id.test_progressbar);
        test_upload=(Button)findViewById(R.id.test_upload);
        test_text=(TextView)findViewById(R.id.test_text);
        test_upload.setOnClickListener(this);
        test_download.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.test_download:
                downloadFile();
                break;
            case R.id.test_upload:
                uploadFile();
                break;
        }

    }
    public void uploadFile(){
        RequestParams params = new RequestParams("http://127.0.0.1:5000/show");
        //params.setMultipart(true);
        params.addBodyParameter("type","喜剧");
        params.addBodyParameter("date","2020");
        params.addBodyParameter("area","中国");
        params.addBodyParameter("first","star_1");
        params.addBodyParameter("num","20");
        //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) {
                try {
                    JSONObject object=new JSONObject(result);
                    JSONArray array=object.optJSONArray("data");
                    for(int i=0;i<array.length();i++){
//                        map=new HashMap<>();
                        String title=array.getString(i);
                        test_text.setText(title);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            @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");
            }
        });
    }
    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");
            }
        });
    }
}
原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14762943.html