Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Unified Diff: components/cronet/android/org_chromium_net_UrlRequest.cc

Issue 423163007: Add method getAllHeaders to HttpUrlRequest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/org_chromium_net_UrlRequest.cc
diff --git a/components/cronet/android/org_chromium_net_UrlRequest.cc b/components/cronet/android/org_chromium_net_UrlRequest.cc
index f96f16422db26e8149403dbd33731ec82b97c459..8ec8b7abdac5f64bba367abcd9204a9b1753de37 100644
--- a/components/cronet/android/org_chromium_net_UrlRequest.cc
+++ b/components/cronet/android/org_chromium_net_UrlRequest.cc
@@ -12,6 +12,7 @@
#include "jni/UrlRequest_jni.h"
#include "net/base/net_errors.h"
#include "net/base/request_priority.h"
+#include "net/http/http_response_headers.h"
using base::android::ConvertUTF8ToJavaString;
@@ -307,4 +308,36 @@ static jstring GetHeader(
}
}
+static void GetAllHeaders(JNIEnv* env,
+ jobject object,
+ jlong urlRequestPeer,
+ jobject headersMap) {
+ URLRequestPeer* request = reinterpret_cast<URLRequestPeer*>(urlRequestPeer);
+ if (request == NULL)
+ return;
+
+ net::HttpResponseHeaders* headers = request->GetResponseHeaders();
+ if (headers == NULL)
+ return;
+
+ void* iter = NULL;
+ std::string header_name;
+ std::string header_value;
+ while (headers->EnumerateHeaderLines(&iter, &header_name, &header_value)) {
+ ScopedJavaLocalRef<jstring> name =
+ ConvertUTF8ToJavaString(env, header_name);
+ ScopedJavaLocalRef<jstring> value =
+ ConvertUTF8ToJavaString(env, header_value);
+ Java_UrlRequest_onAppendResponseHeader(
+ env, object, headersMap, name.Release(), value.Release());
+ }
+
+ // Some implementations (notably HttpURLConnection) include a mapping for the
+ // null key; in HTTP's case, this maps to the HTTP status line.
+ ScopedJavaLocalRef<jstring> status_line =
+ ConvertUTF8ToJavaString(env, headers->GetStatusLine());
+ Java_UrlRequest_onAppendResponseHeader(
+ env, object, headersMap, NULL, status_line.Release());
+}
+
} // namespace cronet

Powered by Google App Engine
This is Rietveld 408576698