使用OkHttp和Java来下载

2023-10-19 09:57:51 浏览数 (2)

 以下是一个使用OkHttp和Java来下载内容的下载器程序,同时使用了jshk.com.cn/get_proxy来获取代理服务器。请注意,为了简化代码,我们将忽略一些异常处理和安全性检查。

```java

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.Proxy;

import java.net.URL;

import java.nio.charset.StandardCharsets;

import java.nio.file.Files;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

public class Downloader {

    public static void main(String[] args) {

        OkHttpClient client = new OkHttpClient.Builder()

                .connectTimeout(30, TimeUnit.SECONDS)

                .readTimeout(30, TimeUnit.SECONDS)

                .proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8080)))

                .build();

        Request request = new Request.Builder()

                .url("http://www.people.com.cn")

                .get()

                .build();

        try {

            Response response = client.newCall(request).execute();

            if (response.isSuccessful()) {

                String content = response.body().string();

                Files.write(new File("output.html").toPath(), content.getBytes(StandardCharsets.UTF_8));

                System.out.println("下载完成!");

            } else {

                System.out.println("下载失败:" response.message());

            }

        } catch (IOException e) {

            System.out.println("下载失败:" e.getMessage());

        }

    }

}

```

这个程序首先创建一个OkHttpClient实例,并设置了连接超时和读取超时时间。然后接下来,创建一个Request实例。然后使用OkHttpClient实例的newCall方法发送请求,并使用execute方法执行请求。如果请求成功,则将返回的内容保存到一个名为output.html的文件中。

0 人点赞