// stdafx.cpp : source file that includes just the standard includes // AMServer.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" namespace HttpUtility { typedef unsigned char BYTE; BYTE toHex(const BYTE &x) { return x > 9 ? x -10 + 'A': x + '0'; } BYTE fromHex(const BYTE &x) { return isdigit(x) ? x-'0' : x-'A'+10; } string URLEncode(const string &sIn) { string sOut; for( size_t ix = 0; ix < sIn.size(); ix++ ) { BYTE buf[4]; memset( buf, 0, 4 ); if( isalnum( (BYTE)sIn[ix] ) ) { buf[0] = sIn[ix]; } else { buf[0] = '%'; buf[1] = toHex( (BYTE)sIn[ix] >> 4 ); buf[2] = toHex( (BYTE)sIn[ix] % 16); } sOut += (char *)buf; } return sOut; }; string URLDecode(const string &sIn) { string sOut; for( size_t ix = 0; ix < sIn.size(); ix++ ) { BYTE ch = 0; if(sIn[ix]=='%') { ch = (fromHex(sIn[ix+1])<<4); ch |= fromHex(sIn[ix+2]); ix += 2; } else if(sIn[ix] == '+') { ch = ' '; } else { ch = sIn[ix]; } sOut += (char)ch; } return sOut; } } // TODO: reference any additional headers you need in STDAFX.H // and not in this file