Skip to content

Commit 0a9fe8d

Browse files
committed
Add static methods to construct Page.
1 parent 7e500d7 commit 0a9fe8d

File tree

2 files changed

+39
-3
lines changed

2 files changed

+39
-3
lines changed

webmagic-core/src/main/java/us/codecraft/webmagic/Page.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,44 @@ public class Page {
5252

5353
private String charset;
5454

55+
/**
56+
* Returns a {@link Page} with {@link #downloadSuccess} is {@code true},
57+
* and {@link #request} is specified.
58+
*
59+
* @param request the request.
60+
* @since 1.0.2
61+
*/
62+
public static Page ofSuccess(Request request) {
63+
return new Page(request, true);
64+
}
65+
66+
/**
67+
* Returns a {@link Page} with {@link #downloadSuccess} is {@code true},
68+
* and {@link #request} is specified.
69+
*
70+
* @param request the request.
71+
* @since 1.0.2
72+
*/
73+
public static Page ofFailure(Request request) {
74+
return new Page(request, false);
75+
}
76+
5577
public Page() {
5678
}
5779

80+
/**
81+
* Constructs a {@link Page} with {@link #request}
82+
* and {@link #downloadSuccess} specified.
83+
*
84+
* @param request the request.
85+
* @param downloadSuccess the download success flag.
86+
* @since 1.0.2
87+
*/
88+
private Page(Request request, boolean downloadSuccess) {
89+
this.request = request;
90+
this.downloadSuccess = downloadSuccess;
91+
}
92+
5893
/**
5994
* Returns a {@link Page} with {@link #downloadSuccess} is {@code false}.
6095
*
@@ -73,7 +108,9 @@ public static Page fail() {
73108
* @param request the {@link Request}.
74109
* @return the page.
75110
* @since 0.10.0
111+
* @deprecated Use {@link #ofFailure(Request)} instead.
76112
*/
113+
@Deprecated(since = "1.0.2", forRemoval = true)
77114
public static Page fail(Request request){
78115
Page page = new Page();
79116
page.setRequest(request);

webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public Page download(Request request, Task task) {
7676
CloseableHttpClient httpClient = getHttpClient(task.getSite());
7777
Proxy proxy = proxyProvider != null ? proxyProvider.getProxy(request, task) : null;
7878
HttpClientRequestContext requestContext = httpUriRequestConverter.convert(request, task.getSite(), proxy);
79-
Page page = Page.fail(request);
79+
Page page = Page.ofFailure(request);
8080
try {
8181
httpResponse = httpClient.execute(requestContext.getHttpUriRequest(), requestContext.getHttpClientContext());
8282
page = handleResponse(request, request.getCharset() != null ? request.getCharset() : task.getSite().getCharset(), httpResponse, task);
@@ -105,7 +105,7 @@ protected Page handleResponse(Request request, String charset, HttpResponse http
105105
HttpEntity entity = httpResponse.getEntity();
106106
byte[] bytes = entity != null ? IOUtils.toByteArray(entity.getContent()) : new byte[0];
107107
String contentType = entity != null && entity.getContentType() != null ? entity.getContentType().getValue() : null;
108-
Page page = new Page();
108+
Page page = Page.ofSuccess(request);
109109
page.setBytes(bytes);
110110
if (!request.isBinaryContent()) {
111111
if (charset == null) {
@@ -117,7 +117,6 @@ protected Page handleResponse(Request request, String charset, HttpResponse http
117117
page.setUrl(new PlainText(request.getUrl()));
118118
page.setRequest(request);
119119
page.setStatusCode(httpResponse.getStatusLine().getStatusCode());
120-
page.setDownloadSuccess(true);
121120
if (responseHeader) {
122121
page.setHeaders(HttpClientUtils.convertHeaders(httpResponse.getAllHeaders()));
123122
}

0 commit comments

Comments
 (0)