标签: apache-commons

防止HttpClient 4跟随重定向

我正在使用Apache HttpComponents库连接到我的AppEngine应用程序.为了验证我的用户身份,我需要将身份验证令牌传递给应用程序的登录地址(http://myapp.appspot.com/_ah/login?auth= ..)并从头部抓取一个cookie.响应.但是,登录页面以重定向状态代码响应,我不知道如何阻止HttpClient跟踪重定向,从而阻止我拦截cookie.

Fwiw,我用来发送请求的实际方法如下.

private void execute(HttpClient client, HttpRequestBase method) {
    // Set up an error handler
    BasicHttpResponse errorResponse = new BasicHttpResponse(
            new ProtocolVersion("HTTP_ERROR", 1, 1), 500, "ERROR");

    try {
        // Call HttpClient execute
        client.execute(method, this.responseHandler);
    } catch (Exception e) {
        errorResponse.setReasonPhrase(e.getMessage());
        try {
            this.responseHandler.handleResponse(errorResponse);
        } catch (Exception ex) {
            // log and/or handle
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何阻止客户端跟踪重定向?

谢谢.

更新:

根据下面的解决方案,我在创建一个DefaultHttpClient client(并在将其传递给execute方法之前)之后执行了以下操作:

if (!this.followRedirect) {
    client.setRedirectHandler(new RedirectHandler() {
        public URI getLocationURI(HttpResponse response,
                HttpContext …
Run Code Online (Sandbox Code Playgroud)

google-app-engine android apache-commons

20
推荐指数
3
解决办法
2万
查看次数

Apache Commons FTPClient.listFiles

org.apache.commons.net.ftp.FTPClient在我的一个应用程序中使用FTP服务器.我能够connect,login,pwdcwd.但是,当我尝试list文件时,它不会返回该目录中的文件列表,我知道确实存在文件.我正在使用该方法FTPFile[] listFiles(),它返回一个空数组FTPFile.

请在下面找到我尝试此操作的代码段:

        String hostname = properties.getProperty("FTP_SERVER");
        String user = properties.getProperty("FTP_USER");
        String passwd = properties.getProperty("FTP_PASSWD");
        FTPClient client = new FTPClient();
        client.connect(hostname);
        client.login(user, passwd);
        String reply = client.getStatus();
        System.out.println(reply);
        client.enterRemotePassiveMode();
        client.changeWorkingDirectory("/uploads");
        FTPFile[] files = client.listFiles();
        System.out.println(files.length);
        for (FTPFile file : files) {
            System.out.println(file.getName());
        }

        String[] fileNames = client.listNames();
        if (fileNames != null) {
            for (String file : fileNames) {
                System.out.println(file);
            }
        }
        client.disconnect();
Run Code Online (Sandbox Code Playgroud)

java ftp-client apache-commons

20
推荐指数
2
解决办法
4万
查看次数

Java中的链表有快速连接方法吗?

如何通过jdk1.6,google或apache commons集合或其他任何方式将O(1)中的两个链接列表与Java连接起来?例如,在jdk中,只有addAll方法是O(n).

我想念的另一个功能是连接两个列表,其中每个列表可以按相反的顺序排列.为了说明这一点,假设两个列表a-> b-> c和e-> f-> g可以合并为

  1. A-> B-> C-> E-> F->克
  2. A-> B-> C-> G-> F->电子
  3. C-> B-> A-> E-> F->克
  4. C-> B-> A-> G-> F->电子

你知道这样的列表实现还是我必须实现自己的链表?了解如何调整现有解决方案也很有帮助(例如,jdk LinkedList只有很多私有方法).这些功能在我看来非常明显,希望我不会错过一些愚蠢的东西.

正如MicSim指出的那样,在Java中使用Merge两个列表的常量时间是相关的,但不是真正的重复!现在的问题是:

  1. 是否有可能与其他集合库?
  2. 如何连续反转?

java collections linked-list apache-commons guava

20
推荐指数
2
解决办法
8654
查看次数

查找Log4J日志文件

我正在开发一个使用Log4J通过Commons的项目.

我正在尝试找到日志文件的路径,但我找不到一个合适的方法来返回Logger中的日志文件路径.

有没有人试过这个?

java log4j apache-commons

19
推荐指数
1
解决办法
2万
查看次数

Java中是否包含MIME类型的枚举?

可能重复:
接口/枚举列出标准mime类型常量

是否有一个枚举(或类似的东西),它包含最常见的MIME类型的常量?

我想处理一些常量,而不是在这里和那里发射字符串.

java mime apache-commons guava

19
推荐指数
2
解决办法
3万
查看次数

是否有类似于Apache Commons CircularFifoBuffer的番石榴?

我需要一个能够以FIFO顺序有效缓冲特定数量元素的数据结构.

正如在这个问题中所提到的,Apache Commons有一个CircularFifoBuffer,但遗憾的是它并没有被广泛化.有些 叉子存在,但我不确定它们的维护状态.

由于Guava是我的收藏需求的首选图书馆,我想知道:番石榴有一个很好的选择吗?如果没有,我应该在我的项目中实现它,基于Apache Commons的CircularFifoBuffer?

java collections apache-commons guava

19
推荐指数
2
解决办法
9555
查看次数

maven依赖项org.apache.commons有什么区别:commons-io和commons-io:commons-io?

Maven存储库包含以下两个依赖项:org.apache.commons:commons-io:1.3.2commons-io:commons-io:1.3.2.有什么区别,我应该在我的pom.xml中使用哪一个?

一般来说,一些apache commons软件包位于http://repo1.maven.org/maven2/org/apache/commons/,大多数commons-*软件包都位于http://repo1.maven.org/maven2/.

dependencies apache-commons maven

18
推荐指数
2
解决办法
6090
查看次数

Google Play"原生平台"显示了commons-io-2.4.jar

我刚刚遇到一个非常奇怪的问题,我的应用程序的构建,通过Google Play的测试版渠道分发,拒绝部署到任何设备.谷歌的一些调查和一些帮助显示问题是这样的,当深入了解Google Play控制台中的APK详情时:

Google Play控制台的屏幕截图

有什么可能导致这种情况?这是我在以下方面指定依赖关系的方式build.gradle:

compile 'org.apache.directory.studio:org.apache.commons.io:2.4'
Run Code Online (Sandbox Code Playgroud)

APK就是这样构建的:

gradle clean
gradle assembleMarketRelease
Run Code Online (Sandbox Code Playgroud)

哪里market是产品口味之一.该应用程序安装并在侧载时运行正常.

我通过删除该依赖项来解决该问题,并自行重新实现缺少的功能,现在正在按预期部署应用程序.但我想了解潜在的问题.我是否错误地指定了依赖项?我做错了吗?

相关:Google Play开发者控制台在上传的Apk的"原生平台"部分中显示DS_Store

android apache-commons gradle google-play android-gradle-plugin

18
推荐指数
2
解决办法
2756
查看次数

Apache Commons ObjectUtils等于方法测试的等级是什么?

我一直都知道Java中有两种类型的相等,

  • value equality:使用该.equals()方法测试两个对象是否在非null对象引用上实现等价关系.
  • 引用相等:使用==运算符来测试两个基本类型或内存位置是否相等.

以下几页更详细地描述了这些语言基础知识.

这两个链接没有明确指定的是,如果比较两个null对象引用的值相等,应该会发生什么.隐含的假设是NullPointerException应该抛出a,但这不是ObjectUtils.equals()方法所做的,这可能被认为是最佳实践效用方法.

令我担心的是,Apache Commons似乎已经在后门有效地引入了第三种平等的Java,并且已经令人困惑的事态可能会变得更加复杂.我称之为平等的第三个衡量标准,因为它试图测试值的相等性,当它失败时,它又回到测试参考相等性.Apache Commons相等测试与值相等和引用相等有许多相似之处,但也有明显的不同.

我是否有权利关注并希望避免使用ObjectUtils.equals()尽可能的地方?

有没有争论要求ObjectUtils.equals()提供其他两种平等衡量标准的有用联合?

选择答案

似乎没有就这个问题达成共识意见,但我决定将Bozho标记为正确,因为他最好将我的注意力吸引到我现在认为是无效安全等于检查的最大问题.我们都应该编写快速失败的代码,解决为什么要比较两个空对象的价值平等的根本原因而不是试图在地毯下扫描问题.

java equality equals apache-commons apache-commons-lang

17
推荐指数
2
解决办法
6962
查看次数

是否有StringUtils.isNumeric的替代方法,我的意思是什么?

StringUtils.isNumeric为""返回true,为7.8返回false.这当然是记录在案的行为,但对我来说真的不是最方便的.是否有其他东西(理想情况下在commons.lang中)提供了isActuallyNumeric?

java apache-commons

17
推荐指数
2
解决办法
3万
查看次数