Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中增加OkHttp中的请求超时?_Java_Android_Okhttp - Fatal编程技术网

Java 如何在android中增加OkHttp中的请求超时?

Java 如何在android中增加OkHttp中的请求超时?,java,android,okhttp,Java,Android,Okhttp,我正在尝试制作一个将连接到flask服务器的应用程序。我正在使用OkHttp库发送和接收数据。我的问题是我想运行一个python脚本,它至少需要2分钟才能完成,然后在完成后点击一个按钮发送一条“成功”消息。因此,每当我向服务器发送请求时,我总是在android logcat中收到一条超时消息。因此,我想知道是否有任何方法可以增加超时 以下是我的onResponse函数: public void onResponse(Call call, final Response response) thro

我正在尝试制作一个将连接到flask服务器的应用程序。我正在使用OkHttp库发送和接收数据。我的问题是我想运行一个python脚本,它至少需要2分钟才能完成,然后在完成后点击一个按钮发送一条“成功”消息。因此,每当我向服务器发送请求时,我总是在android logcat中收到一条超时消息。因此,我想知道是否有任何方法可以增加超时

以下是我的onResponse函数:

public void onResponse(Call call, final Response response) throws IOException {

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try {
                        String loginResponseString = response.body().string().trim();
                        Log.d("LOGIN", "Response from the server : " + loginResponseString);
                        if (loginResponseString.equals("success")) {
                            Log.d("Artist", "Artist Found");
                            
                        } else if (loginResponseString.equals("failure")) {
                            Log.d("Artist", "Artist Not Found");
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        Toast.makeText(Artist.this, "Something went wrong. Please try again later.", Toast.LENGTH_SHORT).show();
                    }
                }
            });
每当我发出请求时,代码总是执行catch部分

Android Logcat:

D/FAIL: timeout

另外,我是个初学者,对flask和android开发不太了解

这是一个40秒的示例。您可以将其修改为120秒

OkHttpClient.Builder builder = new OkHttpClient.Builder()
                .addInterceptor(new HttpInterceptor())
                .connectTimeout(40000, TimeUnit.MILLISECONDS)
                .readTimeout(40000, TimeUnit.MILLISECONDS)

您可以在
OkHttpClient.Builder
上配置超时:这是否回答了您的问题?