@@ -76,13 +76,14 @@ public Page download(Request request, Task task) {
76
76
CloseableHttpClient httpClient = getHttpClient (task .getSite ());
77
77
Proxy proxy = proxyProvider != null ? proxyProvider .getProxy (request , task ) : null ;
78
78
HttpClientRequestContext requestContext = httpUriRequestConverter .convert (request , task .getSite (), proxy );
79
- Page page = Page . fail ( request ) ;
79
+ Page page = null ;
80
80
try {
81
81
httpResponse = httpClient .execute (requestContext .getHttpUriRequest (), requestContext .getHttpClientContext ());
82
82
page = handleResponse (request , request .getCharset () != null ? request .getCharset () : task .getSite ().getCharset (), httpResponse , task );
83
83
onSuccess (page , task );
84
84
return page ;
85
85
} catch (IOException e ) {
86
+ page = Page .ofFailure (request );
86
87
onError (page , task , e );
87
88
return page ;
88
89
} finally {
@@ -105,7 +106,7 @@ protected Page handleResponse(Request request, String charset, HttpResponse http
105
106
HttpEntity entity = httpResponse .getEntity ();
106
107
byte [] bytes = entity != null ? IOUtils .toByteArray (entity .getContent ()) : new byte [0 ];
107
108
String contentType = entity != null && entity .getContentType () != null ? entity .getContentType ().getValue () : null ;
108
- Page page = new Page ( );
109
+ Page page = Page . ofSuccess ( request );
109
110
page .setBytes (bytes );
110
111
if (!request .isBinaryContent ()) {
111
112
if (charset == null ) {
@@ -117,7 +118,6 @@ protected Page handleResponse(Request request, String charset, HttpResponse http
117
118
page .setUrl (new PlainText (request .getUrl ()));
118
119
page .setRequest (request );
119
120
page .setStatusCode (httpResponse .getStatusLine ().getStatusCode ());
120
- page .setDownloadSuccess (true );
121
121
if (responseHeader ) {
122
122
page .setHeaders (HttpClientUtils .convertHeaders (httpResponse .getAllHeaders ()));
123
123
}
0 commit comments