如何避免使用HttpClient 4.1.1进行循环重定向。当我得到这样的错误:-
executing requestGET http://home.somehost.com/Mynet/pages/cHome.xhtml HTTP/1.1
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at edu.uci.ics.crawler4j.url.WebURL.setURL(WebURL.java:122)
at edu.uci.ics.crawler4j.crawler.CrawlController.addSeed(CrawlController.java:207)
at edu.uci.ics.crawler4j.example.advanced.Controller.main(Controller.java:31)
Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'http://home.somehost.com/Mynet/pages/Home.xhtml'
at org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:168)
at org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:193)
at org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1021)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:482)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
这是我的代码…
DefaultHttpClient client = null;
try
{
// Set url
//URI uri = new URI(url.toString());
client = new DefaultHttpClient();
client.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM),
new UsernamePasswordCredentials("test", "test"));
URL url1 = new URL (url);
HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
connection.setFollowRedirects(false);
HttpGet request = new HttpGet(url);
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);
HttpContext context = new BasicHttpContext();
System.out.println("----------------------------------------");
System.out.println("executing request" + request.getRequestLine());
HttpResponse response = client.execute(request, context);
HttpEntity entity = response.getEntity();
System.out.println(response.getStatusLine());
InputStream content = entity.getContent();
BufferedReader in =
new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
// System.out.println(line);
}
} catch(Exception e) {
e.printStackTrace();
}
您可以将ClientPNames.ALLOW_CIRCULAR_REDIRECTS设置为true,这将允许重定向到同一位置。
client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
在这里查看更多信息
我的服务器中有4个域: domain1.comdomain2.netdomain3.comdomain4.net 启用的主SSL是:domain1.com 我尝试将所有这些SEO永久301重定向到 https://www.domain1.com 并且工作正常,问题是当有人尝试访问任何以https为前缀的辅助域时,重定向不起作用。 示例:domain2.net(或任何其他带有https前缀的地址)不
从我的main开始,我将启动两个线程,称为producer和consumer。两者都包含循环。生产者循环是UDP服务器,因此不需要Hibernate。我的问题出在消费者方面。使用者循环将对象从链接队列中移除,并将其传递给一个函数进行进一步处理。根据研究,在循环中使用线程Hibernate不是一个好的实践,因为有时O/S在设定时间结束时不会释放。如果我删除线程Hibernate,当应用程序是理想的,
问题内容: 我尝试使用MVP范例构建Webapp。因为我希望API干净并且使所有内容易于测试,所以我尝试通过Contructor Injection注入所有可能的内容。现在,我到了一个具有多个文本字段的视图。当数据库中有值时,演示者将填充这些文本字段,因此我的演示者需要视图的引用,但是vie显然也需要演示者的引用。CDI告诉我,由于循环依赖性,无法将Presenter注入视图。是否有可能避免通过s
我有一个用Grails 2.3.8编写的大项目。有时,当我使用我的CI部署它时,我收到以下消息: 由于StackOverflow Error,无法完成Web应用程序[/ProjectName##1152]的注释扫描。 可能的根本原因包括 -Xss 设置过低和非法的循环继承依赖关系。正在处理的类层次结构是 [org.bouncycastle.asn1.ASN1EncodableVector- 我已经
问题内容: 我目前使用Zend_Db来管理查询。我已经编写了执行以下查询的代码: 假设Zend_Db可以,我在不清理输入的情况下完成了此操作。Zend会这样做吗? 另一个问题:Zend_Db是否清除并查询? 谢谢。 问题答案: 当我是该项目的团队负责人(直到1.0版)时,我在Zend Framework中编写了很多用于数据库参数和引用的代码。 我尽力鼓励最佳做法,但必须在易用性之间取得平衡。 请注
我希望我的 print 语句在循环之外,这样语句就不会一遍又一遍地打印相同的内容。下面的 for 循环只是将一个数组中的数字与另一个数组进行对比,以找出找到多少个匹配项。定义上面的变量并打印下面的语句会导致“变量未初始化错误”,这是可以理解的。