You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by sn...@apache.org on 2020/01/09 10:12:54 UTC
[nutch] branch master updated: NUTCH-2760 protocol-okhttp: properly
record HTTP version in request message header - use HTTP protocol from
connection (instead of response) for request message stored in metadata (if
property `store.http.request` is true)
This is an automated email from the ASF dual-hosted git repository.
snagel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nutch.git
The following commit(s) were added to refs/heads/master by this push:
new 21018be NUTCH-2760 protocol-okhttp: properly record HTTP version in request message header - use HTTP protocol from connection (instead of response) for request message stored in metadata (if property `store.http.request` is true)
new 3bbc6dd Merge pull request #489 from sebastian-nagel/NUTCH-2760-protocol-okhttp-request-message-http-version
21018be is described below
commit 21018bea76e14976802f49b7856f1b444331bd70
Author: Sebastian Nagel <sn...@apache.org>
AuthorDate: Fri Dec 13 12:46:02 2019 +0100
NUTCH-2760 protocol-okhttp: properly record HTTP version in request message header
- use HTTP protocol from connection (instead of response)
for request message stored in metadata (if property `store.http.request` is true)
---
.../org/apache/nutch/protocol/okhttp/OkHttp.java | 24 ++++++++++++++--------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/plugin/protocol-okhttp/src/java/org/apache/nutch/protocol/okhttp/OkHttp.java b/src/plugin/protocol-okhttp/src/java/org/apache/nutch/protocol/okhttp/OkHttp.java
index 22183c0..b4edb19 100644
--- a/src/plugin/protocol-okhttp/src/java/org/apache/nutch/protocol/okhttp/OkHttp.java
+++ b/src/plugin/protocol-okhttp/src/java/org/apache/nutch/protocol/okhttp/OkHttp.java
@@ -54,6 +54,7 @@ import okhttp3.Connection;
import okhttp3.Headers;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
+import okhttp3.Protocol;
import okhttp3.Request;
public class OkHttp extends HttpBase {
@@ -220,6 +221,15 @@ public class OkHttp extends HttpBase {
class HTTPHeadersInterceptor implements Interceptor {
+ private String getNormalizedProtocolName(Protocol protocol) {
+ String name = protocol.toString().toUpperCase(Locale.ROOT);
+ if ("H2".equals(name)) {
+ // back-ward compatible protocol version name
+ name = "HTTP/2";
+ }
+ return name;
+ }
+
@Override
public okhttp3.Response intercept(Interceptor.Chain chain)
throws IOException {
@@ -233,12 +243,6 @@ public class OkHttp extends HttpBase {
Request request = chain.request();
okhttp3.Response response = chain.proceed(request);
- String httpProtocol = response.protocol().toString()
- .toUpperCase(Locale.ROOT);
- if (useHttp2 && "H2".equals(httpProtocol)) {
- // back-ward compatible protocol name
- httpProtocol = "HTTP/2";
- }
StringBuilder requestverbatim = null;
StringBuilder responseverbatim = null;
@@ -252,7 +256,9 @@ public class OkHttp extends HttpBase {
if (query != null) {
requestverbatim.append('?').append(query);
}
- requestverbatim.append(' ').append(httpProtocol).append("\r\n");
+ requestverbatim.append(' ')
+ .append(getNormalizedProtocolName(connection.protocol()))
+ .append("\r\n");
Headers headers = request.headers();
@@ -269,8 +275,8 @@ public class OkHttp extends HttpBase {
if (storeHttpHeaders) {
responseverbatim = new StringBuilder();
- responseverbatim.append(httpProtocol).append(' ')
- .append(response.code());
+ responseverbatim.append(getNormalizedProtocolName(response.protocol()))
+ .append(' ').append(response.code());
if (!response.message().isEmpty()) {
responseverbatim.append(' ').append(response.message());
}