1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2009 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// The rules for parsing content-types were borrowed from Firefox: 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// http://lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURLHelper.cpp#834 7c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/http/http_util.h" 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/logging.h" 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "net/base/net_util.h" 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottnamespace net { 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// static 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstd::string HttpUtil::PathForRequest(const GURL& url) { 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott DCHECK(url.is_valid() && (url.SchemeIs("http") || url.SchemeIs("https"))); 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott if (url.has_query()) 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return url.path() + "?" + url.query(); 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return url.path(); 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// static 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottstd::string HttpUtil::SpecForRequest(const GURL& url) { 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott DCHECK(url.is_valid() && (url.SchemeIs("http") || url.SchemeIs("https"))); 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott return SimplifyUrlForRequest(url).spec(); 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott} // namespace net 30