强转为HttpRequestWrapper出错
ERROR us.codecraft.webmagic.downloader.CustomRedirectStrategy(CustomRedirectStrategy.java:37) ## 强转为HttpRequestWrapper出错
Post请求发送json,返回经常出现这个问题.
CustomRedirectStrategy可能有问题,能否给个出错的测试地址?
使用代理的情况下,会出现强转失败,可能是因为 HttpRequestWrapper过时了吧.
使用代理,遇到该ip失效,返回的是错误页面信息,强转request失败,造成该次请求丢失,没有添加到任务队列,报错, HttpRequestWrapper强转失败
07-02 13:47:21 DEBUG org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:142) - Redirect requested to location 'http://www.ivrn.net/warning/?n=20243&reason=3&s=16&id=11276903:8&ts=1498974427&str=BillingSet&referer=&cookie=&host=xxx.cn&url=/xxx/xxx¶ms=' 07-02 13:47:21 ERROR us.codecraft.webmagic.downloader.CustomRedirectStrategy.getRedirect(CustomRedirectStrategy.java:37) - 强转为HttpRequestWrapper出错
上面网址我用xxx替换了
Httpclient 4.5.2 已经使用final HttpRequest redirect = this.redirectStrategy.getRedirect( currentRequest.getOriginal(), response, context); 不强转为 过时的 HttpRequestWrapper,建议修改下.
HttpClient 中已有 方法 建议修正下. final int status = response.getStatusLine().getStatusCode(); if (status == HttpStatus.SC_TEMPORARY_REDIRECT) { return RequestBuilder.copy(request).setUri(uri).build(); } else { return new HttpGet(uri); }
一年多还没有修复吗?
这个问题还存在,为啥还不修复呢
复制HttpClientDownloader,将其中的HttpClientGenerator同样复制修改,最后在新的Generator中同样复制修改一个RedirectStrategy,按照楼上的方法修改,暂时搞定了该问题