• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
11 namespace net {
12 
NetLogHttpRequestParameter(const std::string & line,const HttpRequestHeaders & headers)13 NetLogHttpRequestParameter::NetLogHttpRequestParameter(
14     const std::string& line,
15     const HttpRequestHeaders& headers)
16     : line_(line) {
17   headers_.CopyFrom(headers);
18 }
19 
ToValue() const20 Value* 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 
~NetLogHttpRequestParameter()35 NetLogHttpRequestParameter::~NetLogHttpRequestParameter() {}
36 
NetLogHttpResponseParameter(const scoped_refptr<HttpResponseHeaders> & headers)37 NetLogHttpResponseParameter::NetLogHttpResponseParameter(
38     const scoped_refptr<HttpResponseHeaders>& headers)
39     : headers_(headers) {}
40 
ToValue() const41 Value* 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 
~NetLogHttpResponseParameter()57 NetLogHttpResponseParameter::~NetLogHttpResponseParameter() {}
58 
59 }  // namespace net
60