Changeset 28 in cheroxy for trunk/src/CRXHttpRequest.cpp
- Timestamp:
- 11/16/12 13:07:05 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/CRXHttpRequest.cpp
r26 r28 50 50 } 51 51 52 std::string53 CRXHttpRequest::GetURL (void) const54 {55 /*----------------------------------------------------------------*/56 /*----------------------------------------------------------------*/57 58 return mUrl;59 }60 61 std::string62 CRXHttpRequest::GetHost (void) const63 {64 /*----------------------------------------------------------------*/65 /*----------------------------------------------------------------*/66 67 return mHost;68 }69 70 int71 CRXHttpRequest::GetPort (void) const72 {73 /*----------------------------------------------------------------*/74 /*----------------------------------------------------------------*/75 76 return mPort;77 }78 79 52 CRXHttpRequest & 80 53 CRXHttpRequest::operator = (const char * aHttpMessage) … … 90 63 CRXHttpRequest::Parse (void) 91 64 { 92 std::string aHttpRequestUr i = "";65 std::string aHttpRequestUrl; 93 66 94 67 char aMethod[64] = {0x00, }; … … 103 76 104 77 /*----------------------------------------------------------------*/ 105 aHttpRequestUr i= GetHeader ().substr (0, mHttpMessage.find ('\r'));78 aHttpRequestUrl = GetHeader ().substr (0, mHttpMessage.find ('\r')); 106 79 107 80 /*---------------------------------------------------------------- 108 81 * 1. separate first line to <METHOD>, <URL> and <VERSION> 109 82 *----------------------------------------------------------------*/ 110 sscanf (aHttpRequestUr i.c_str (), "%[^ ] %[^ ] %[^ ]\r\n", aMethod, aUrl, aHttpVersion);83 sscanf (aHttpRequestUrl.c_str (), "%[^ ] %[^ ] %[^ ]\r\n", aMethod, aUrl, aHttpVersion); 111 84 mMethod.assign (aMethod); 112 85 mUrl.assign (aUrl); 113 86 mHttpVersion.assign (aHttpVersion); 87 88 ParseFileExtension (); 114 89 115 90 /*---------------------------------------------------------------- … … 129 104 /*----------------------------------------------------------------*/ 130 105 } 106 107 void 108 CRXHttpRequest::ParseFileExtension (void) 109 { 110 std::string aFilename; 111 112 size_t aFilenameOffset = 0; 113 size_t aParameterPosition = 0; 114 size_t aSlashPosition = 0; 115 size_t aDotPosition = 0; 116 117 /*----------------------------------------------------------------*/ 118 /*---------------------------------------------------------------- 119 * 1. get filename 120 *----------------------------------------------------------------*/ 121 aParameterPosition = mUrl.find ('?'); 122 aSlashPosition = mUrl.rfind ('/', aParameterPosition) + 1; 123 if (aSlashPosition == mUrl.length ()) 124 return ; 125 126 aFilenameOffset = (aParameterPosition != std::string::npos) 127 ? aParameterPosition - aSlashPosition 128 : std::string::npos; 129 130 aFilename = mUrl.substr (aSlashPosition, aFilenameOffset); 131 132 /*---------------------------------------------------------------- 133 * 2. get file extension 134 *----------------------------------------------------------------*/ 135 aDotPosition = aFilename.rfind ('.'); 136 if (aDotPosition != std::string::npos) 137 mFileExtension = aFilename.substr (aDotPosition + 1); 138 /*----------------------------------------------------------------*/ 139 } 140 141 std::string CRXHttpRequest::GetURL (void) const { return mUrl; } 142 std::string CRXHttpRequest::GetHost (void) const { return mHost; } 143 int CRXHttpRequest::GetPort (void) const { return mPort; } 144 std::string CRXHttpRequest::GetFileExtension (void) const { return mFileExtension; }
Note:
See TracChangeset
for help on using the changeset viewer.