Volley不与烧瓶服务器连接

问题描述 投票:0回答:1

我的Java代码未与flask连接。它不会给出任何错误或响应。程序无限运行。当我尝试连接时,它没有响应或错误功能。完成函数调用后,它将开始运行,并且永不停止。

Java代码:

Button button;
    RequestQueue rQueue;
    String url ="http://127.0.0.1:5000/predict";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        rQueue = Volley.newRequestQueue(MainActivity.this);
    }

    public void predict(View view){
        UploadTwoImages();
    }

    public String getStringImage(Bitmap bmp) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] imageBytes = baos.toByteArray();
        String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
        return encodedImage;
    }

    public void UploadTwoImages() {
        Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.logo);

        final String imageOne = getStringImage(icon);

        final ProgressDialog pDialog = new ProgressDialog(MainActivity.this);
        pDialog.setMessage("Registration is in Process Please wait...");
        pDialog.show();

        StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                pDialog.dismiss();
                Log.d("JSONResult", s);
                try {
                    JSONObject jObject = new JSONObject(s);

                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {

            }
        }) {
            //adding parameters to send
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> parameters = new HashMap<String, String>();
                parameters.put("image", imageOne);
                return parameters;
            }
        };

        request.setRetryPolicy(new DefaultRetryPolicy(
                90000,
                0,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        request.setShouldCache(false);
        rQueue.add(request);
    } 

烧瓶服务器代码:

@app.route('/predict', methods=['GET', 'POST'])
def upload():
    if request.method == "POST":
        if request.files:
            output={}
            image = request.files["image"]
            print(request.files)
            basepath = os.path.dirname(__file__)
            file_path = os.path.join(
            basepath, 'uploads', secure_filename(image.filename))
            print(image.filename)
            image.save(file_path)
            return str([1])
    return "Error"
if __name__ == '__main__':
    app.run(debug=True)

url = ipv4address:portNumber / apiName

android flask android-volley
1个回答
0
投票

在android清单中添加以下2行,它对我有用。android:usesCleartextTraffic="true"<uses-permission android:name="android.permission.INTERNET"/>

© www.soinside.com 2019 - 2024. All rights reserved.