⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlparser.h

📁 跨操作系统的微型中间件
💻 H
字号:
#ifndef __URL_PARSER_H_FILE__
#define __URL_PARSER_H_FILE__

#ifdef WIN32
#pragma warning(disable:4786)
#endif

#include <string>
#include <map>

#include "OSHeaders.h"

using namespace std;
class CUrlParser
{
public:
	CUrlParser()
	{
		m_nPort = 0;
	}

	CUrlParser(const CUrlParser &other)
	{
		*this = other;
	}
	CUrlParser& operator = (const CUrlParser &other);

	Bool	ParserUrl(const string &strUrl);

	Bool	EncodeUrl();
	Bool	DecodeUrl();

	string	GetUrl()			{ return m_strUrl; }
	string	GetProtocolName()	{ return m_strProtocolName; }
	string	GetHostName()		{ return m_strHostName; }
	UInt16	Getport()			{ return m_nPort; }
	string	GetPath()			{ return m_strPath; }
	string	GetFullPath()		{ return m_strFullPath; }
	string	GetFilename()		{ return m_strFilename; }
	string	GetExtName();
	string	GetExtInfo()		{ return m_strExtInfo; }

	//提取扩展域(?xxx=aaa&&yyy=bbb)
	string operator[](const string &strExtendKey);
private:
	UInt16	GetDefaultPort(const string &strProtocol);
	void	Tolower(string &ioStr);
	void	ParseExtraInfo();
private:
	string		m_strUrl;			//原始URL
	string		m_strProtocolName;	//协议名称
	string		m_strHostName;		//主机名, 域名或者IP
	UInt16		m_nPort;			//端口, 如果URL中没有显式标明则为协议的默认端口
	string		m_strPath;			//路径, 包含文件名
	string		m_strFullPath;		//本地全路径, 与本地的Movies目录设置有关
	string		m_strFilename;		//文件名, 不包含路径
	string		m_strExtInfo;		//附加信息, 一般为问号之后的内容

	map<string, string>		m_mapDictionary;	//存放各域的值
	
	
};



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -