// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "net/http/http_net_log_params.h" #include "base/stringprintf.h" #include "base/values.h" #include "net/http/http_response_headers.h" namespace net { NetLogHttpRequestParameter::NetLogHttpRequestParameter( const std::string& line, const HttpRequestHeaders& headers) : line_(line) { headers_.CopyFrom(headers); } Value* NetLogHttpRequestParameter::ToValue() const { DictionaryValue* dict = new DictionaryValue(); dict->SetString("line", line_); ListValue* headers = new ListValue(); HttpRequestHeaders::Iterator iterator(headers_); while (iterator.GetNext()) { headers->Append( new StringValue(base::StringPrintf("%s: %s", iterator.name().c_str(), iterator.value().c_str()))); } dict->Set("headers", headers); return dict; } NetLogHttpRequestParameter::~NetLogHttpRequestParameter() {} NetLogHttpResponseParameter::NetLogHttpResponseParameter( const scoped_refptr<HttpResponseHeaders>& headers) : headers_(headers) {} Value* NetLogHttpResponseParameter::ToValue() const { DictionaryValue* dict = new DictionaryValue(); ListValue* headers = new ListValue(); headers->Append(new StringValue(headers_->GetStatusLine())); void* iterator = NULL; std::string name; std::string value; while (headers_->EnumerateHeaderLines(&iterator, &name, &value)) { headers->Append( new StringValue(base::StringPrintf("%s: %s", name.c_str(), value.c_str()))); } dict->Set("headers", headers); return dict; } NetLogHttpResponseParameter::~NetLogHttpResponseParameter() {} } // namespace net