我正在使用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) 我org.apache.commons.net.ftp.FTPClient在我的一个应用程序中使用FTP服务器.我能够connect,login,pwd和cwd.但是,当我尝试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) 如何通过jdk1.6,google或apache commons集合或其他任何方式将O(1)中的两个链接列表与Java连接起来?例如,在jdk中,只有addAll方法是O(n).
我想念的另一个功能是连接两个列表,其中每个列表可以按相反的顺序排列.为了说明这一点,假设两个列表a-> b-> c和e-> f-> g可以合并为
你知道这样的列表实现还是我必须实现自己的链表?了解如何调整现有解决方案也很有帮助(例如,jdk LinkedList只有很多私有方法).这些功能在我看来非常明显,希望我不会错过一些愚蠢的东西.
正如MicSim指出的那样,在Java中使用Merge两个列表的常量时间是相关的,但不是真正的重复!现在的问题是:
我正在开发一个使用Log4J通过Commons的项目.
我正在尝试找到日志文件的路径,但我找不到一个合适的方法来返回Logger中的日志文件路径.
有没有人试过这个?
Maven存储库包含以下两个依赖项:org.apache.commons:commons-io:1.3.2和commons-io:commons-io:1.3.2.有什么区别,我应该在我的pom.xml中使用哪一个?
一般来说,一些apache commons软件包位于http://repo1.maven.org/maven2/org/apache/commons/,大多数commons-*软件包都位于http://repo1.maven.org/maven2/.
我刚刚遇到一个非常奇怪的问题,我的应用程序的构建,通过Google Play的测试版渠道分发,拒绝部署到任何设备.谷歌的一些调查和一些帮助显示问题是这样的,当深入了解Google Play控制台中的APK详情时:

有什么可能导致这种情况?这是我在以下方面指定依赖关系的方式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是产品口味之一.该应用程序安装并在侧载时运行正常.
我通过删除该依赖项来解决该问题,并自行重新实现缺少的功能,现在正在按预期部署应用程序.但我想了解潜在的问题.我是否错误地指定了依赖项?我做错了吗?
android apache-commons gradle google-play android-gradle-plugin
我一直都知道Java中有两种类型的相等,
.equals()方法测试两个对象是否在非null对象引用上实现等价关系.==运算符来测试两个基本类型或内存位置是否相等.以下几页更详细地描述了这些语言基础知识.
这两个链接没有明确指定的是,如果比较两个null对象引用的值相等,应该会发生什么.隐含的假设是NullPointerException应该抛出a,但这不是ObjectUtils.equals()方法所做的,这可能被认为是最佳实践效用方法.
令我担心的是,Apache Commons似乎已经在后门有效地引入了第三种平等的Java,并且已经令人困惑的事态可能会变得更加复杂.我称之为平等的第三个衡量标准,因为它试图测试值的相等性,当它失败时,它又回到测试参考相等性.Apache Commons相等测试与值相等和引用相等有许多相似之处,但也有明显的不同.
我是否有权利关注并希望避免使用ObjectUtils.equals()尽可能的地方?
有没有争论要求ObjectUtils.equals()提供其他两种平等衡量标准的有用联合?
似乎没有就这个问题达成共识意见,但我决定将Bozho标记为正确,因为他最好将我的注意力吸引到我现在认为是无效安全等于检查的最大问题.我们都应该编写快速失败的代码,解决为什么要比较两个空对象的价值平等的根本原因而不是试图在地毯下扫描问题.
StringUtils.isNumeric为""返回true,为7.8返回false.这当然是记录在案的行为,但对我来说真的不是最方便的.是否有其他东西(理想情况下在commons.lang中)提供了isActuallyNumeric?
apache-commons ×10
java ×7
guava ×3
android ×2
collections ×2
dependencies ×1
equality ×1
equals ×1
ftp-client ×1
google-play ×1
gradle ×1
linked-list ×1
log4j ×1
maven ×1
mime ×1