本文整理汇总了C++中raknet::RakString::URLDecode方法的典型用法代码示例。如果您正苦于以下问题:C++ RakString::URLDecode方法的具体用法?C++ RakString::URLDecode怎么用?C++ RakString::URLDecode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类raknet::RakString
的用法示例。
在下文中一共展示了RakString::URLDecode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessTCPPacket
void HTTPConnection::ProcessTCPPacket(Packet *packet)
{
RakAssert(packet);
// read all the packets possible
if(packet->systemAddress == server)
{
if(incomingData.GetLength() == 0)
{
int response_code = atoi((char *)packet->data + strlen("HTTP/1.0 "));
if(response_code > 299)
{
badResponses.Push(BadResponse(packet->data, response_code), _FILE_AND_LINE_ );
//printf("Closed connection (Bad response 2)\n");
CloseConnection();
return;
}
}
RakNet::RakString incomingTemp = RakNet::RakString::NonVariadic((const char*) packet->data);
incomingTemp.URLDecode();
incomingData += incomingTemp;
// printf((const char*) packet->data);
// printf("\n");
RakAssert(strlen((char *)packet->data) == packet->length); // otherwise it contains Null bytes
const char *start_of_body = strstr(incomingData, "\r\n\r\n");
// besides having the server close the connection, they may
// provide a length header and supply that many bytes
if(
// Why was start_of_body here? Makes the GET command fail
// start_of_body &&
connectionState == CS_PROCESSING)
{
/*
// The stupid programmer that wrote this originally didn't think that just because the header contains this value doesn't mean you got the whole message
if (strstr((const char*) packet->data, "\r\nConnection: close\r\n"))
{
CloseConnection();
}
else
{
*/
long length_of_headers;
if (start_of_body)
{
length_of_headers = (long)(start_of_body + 4 - incomingData.C_String());
const char *length_header = strstr(incomingData, "\r\nLength: ");
if(length_header)
{
long length = atol(length_header + 10) + length_of_headers;
if((long) incomingData.GetLength() >= length)
{
//printf("Closed connection (Got all data due to length header)\n");
CloseConnection();
}
}
}
else
{
// No processing needed
}
//}
}
}
}