当前位置: 首页 > 知识库问答 >
问题:

HttpURLConnection忽略代理

曹骞仕
2023-03-14

Android6.0-11.0
СompileSdkVersion 30
minsdk版本23

HttpURLConnection忽略代理——当指定一个不存在的地址时,它不会发誓
我需要在编译应用程序后,应用程序可以通过代理发送请求
尝试了以下操作:

System.setProperty("http.proxyHost", "host");
System.setProperty("http.proxyPort", "port_number");


System.setProperty("http.proxyUser", "user");
System.setProperty("http.proxyPassword", "password");

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("***.***.***.***", 1111));
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(proxy);

        connection.connect();

我的代码:

String getText(String url) throws IOException {


        Properties systemSettings = System.getProperties();
        systemSettings.put("https.proxyHost","***.***.***.***");
        systemSettings.put("https.proxyPort", "1490");
        systemSettings.put("https.proxyUsername", "user");
        systemSettings.put("https.proxyPassword", "pass");

        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();

        connection.connect();

        int responseCode = connection.getResponseCode();
        InputStream inputStream;
        if (200 <= responseCode && responseCode <= 299) {
            inputStream = connection.getInputStream();
        } else {
            inputStream = connection.getErrorStream();
        }

        BufferedReader in1 = new BufferedReader(
                new InputStreamReader(
                        inputStream));

        StringBuilder response = new StringBuilder();
        String currentLine;

        while ((currentLine = in1.readLine()) != null)
            response.append(currentLine);

        in1.close();

        return response.toString();
    }

使用此选项时,根本不会加载页面:

 Authenticator authenticator = new Authenticator() {

        public PasswordAuthentication getPasswordAuthentication() {
            return (new PasswordAuthentication("user",
                    "password".toCharArray()));
        }
    };
    Authenticator.setDefault(authenticator);

请告诉我我做错了什么。

共有1个答案

袁文景
2023-03-14

我理解你的问题,如果你不需要使用代理,请使用以下代码

httpurlconnection.openconnection(Proxy.NO_PROXY)

或者如果使用代理

//Proxy instance, proxy ip = 10.0.0.1 with port 8080
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.0.0.1", 8080));
conn = new URL(urlString).openConnection(proxy);

如果你能得到407的回复

然后试试这个代码

Authenticator authenticator = new Authenticator() {

    public PasswordAuthentication getPasswordAuthentication() {
        return (new PasswordAuthentication("user",
                "password".toCharArray()));
    }
};
Authenticator.setDefault(authenticator);
 类似资料:
  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc

  • 我一直在搜索和阅读关于这个主题的文档,但我没有尽力让它工作。https://cli.vuejs.org/config/#devserver-代理 我让我的Vue.js申请正常了 所以我按命令运行应用程序 在…上http://localhost:8080/. 相当标准的东西。 但是我的应用程序需要一个运行在https://localhost/的PHP后端,所以我在根目录vue.confic.js文件

  • 问题内容: 我正在某个网站上插入一些标题中的换行符。假设我无法编辑源HTML,是否有CSS可以忽略这些中断的方法? 我正在移动网站的优化,所以我真的不想使用JavaScript。 问题答案: 使用css,您可以“隐藏” br标签,它们不会起作用: 如果只想在特定的标题类型中隐藏某些内容,只需使CSS更具体即可。

  • 我在我的项目中使用CMake,我想在项目中引入整洁的支票。 为此目的,我使用和文件进行检查设置。 我想使用警告作为错误,以便在CI中有可靠的方法来检查提交是否引入了一些新的违规行为。不幸的是,由于第三方库,我在启用检查时遇到了一些问题。 请看EDIT2! 例如,我使用,这是一个只有头的库。由于这一事实,我在代码中收到了一些警告,例如“a_file.cpp” 我有点不知道如何忽略这种问题,因为似乎无

  • 问题内容: 这是我的实体: 这是我获得人员名单的方式: 如果我正确理解提取图,则它必须仅加载我指定的那些字段。但是,字段“ birthDate”也已加载。此外,我看到在hibernateSQL查询中选择了4列。 如何解决?我使用hibernate 5.1.0作为JPA提供程序。 问题答案: 实体图旨在控制延迟或渴望加载哪些关系(例如,一对一,一对多等)。它们可能不适用于加载各个列(取决于提供程序)

  • 由于某些原因,我无法将CURL与HTTPS一起使用。在我升级curl库之前,一切都很正常。现在,我在尝试执行CURL请求时遇到了这种响应:SSL CA证书(路径?访问权限?)有问题 以下是关于相关问题的建议,我试图做到以下几点: > 启用并指向从http://curl.haxx.se/docs/caextract.html下载的cacert.pem 我也试着用positiveSSL做同样的事情。c