今日想要完成手机端请求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"); } }); } }