1// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "net/http/http_net_log_params.h" 6 7#include "base/stringprintf.h" 8#include "base/values.h" 9#include "net/http/http_response_headers.h" 10 11namespace net { 12 13NetLogHttpRequestParameter::NetLogHttpRequestParameter( 14 const std::string& line, 15 const HttpRequestHeaders& headers) 16 : line_(line) { 17 headers_.CopyFrom(headers); 18} 19 20Value* NetLogHttpRequestParameter::ToValue() const { 21 DictionaryValue* dict = new DictionaryValue(); 22 dict->SetString("line", line_); 23 ListValue* headers = new ListValue(); 24 HttpRequestHeaders::Iterator iterator(headers_); 25 while (iterator.GetNext()) { 26 headers->Append( 27 new StringValue(base::StringPrintf("%s: %s", 28 iterator.name().c_str(), 29 iterator.value().c_str()))); 30 } 31 dict->Set("headers", headers); 32 return dict; 33} 34 35NetLogHttpRequestParameter::~NetLogHttpRequestParameter() {} 36 37NetLogHttpResponseParameter::NetLogHttpResponseParameter( 38 const scoped_refptr<HttpResponseHeaders>& headers) 39 : headers_(headers) {} 40 41Value* NetLogHttpResponseParameter::ToValue() const { 42 DictionaryValue* dict = new DictionaryValue(); 43 ListValue* headers = new ListValue(); 44 headers->Append(new StringValue(headers_->GetStatusLine())); 45 void* iterator = NULL; 46 std::string name; 47 std::string value; 48 while (headers_->EnumerateHeaderLines(&iterator, &name, &value)) { 49 headers->Append( 50 new StringValue(base::StringPrintf("%s: %s", name.c_str(), 51 value.c_str()))); 52 } 53 dict->Set("headers", headers); 54 return dict; 55} 56 57NetLogHttpResponseParameter::~NetLogHttpResponseParameter() {} 58 59} // namespace net 60