예제 #1
0
RakString RakString::FormatForPOST(RakString &uri, RakString &contentType, unsigned int port, RakString &body)
{
	RakString out;
	RakString host;
	RakString remotePath;
	RakNet::RakString header;

	uri.SplitURI(header, host, remotePath);
	if (host.IsEmpty() || remotePath.IsEmpty())
		return out;
	
	out.Set("POST %s HTTP/1.0\r\n"
		"Host: %s:%i\r\n"
		"Content-Type: %s\r\n"
		"Content-Length: %u\r\n"
		"\r\n"
		"%s",
		remotePath.C_String(),
		host.C_String(),
		port,
		contentType.C_String(),
		body.GetLength(),
		body.C_String());

	return out;
}
예제 #2
0
RakNet::RakString RakString::FormatForPUTOrPost(const char* type, const char* uri, const char* contentType, const char* body, const char* extraHeaders)
{
	RakString out;
	RakString host;
	RakString remotePath;
	RakNet::RakString header;
	RakString uriRs;
	uriRs = uri;
	uriRs.SplitURI(header, host, remotePath);

	if (host.IsEmpty() || remotePath.IsEmpty())
		return out;

//	RakString bodyEncoded = body;
//	bodyEncoded.URLEncode();

	if (extraHeaders!=0 && extraHeaders[0])
	{
		out.Set("%s %s HTTP/1.1\r\n"
			"%s\r\n"
			"Host: %s\r\n"
			"Content-Type: %s\r\n"
			"Content-Length: %u\r\n"
			"\r\n"
			"%s",
			type,
			remotePath.C_String(),
			extraHeaders,
			host.C_String(),
			contentType,
			//bodyEncoded.GetLength(),
			//bodyEncoded.C_String());
			strlen(body),
			body);
	}
	else
	{
		out.Set("%s %s HTTP/1.1\r\n"
			"Host: %s\r\n"
			"Content-Type: %s\r\n"
			"Content-Length: %u\r\n"
			"\r\n"
			"%s",
			type,
			remotePath.C_String(),
			host.C_String(),
			contentType,
			//bodyEncoded.GetLength(),
			//bodyEncoded.C_String());
			strlen(body),
			body);
	}

	return out;
}
예제 #3
0
RakString RakString::FormatForGET(RakString &uri, unsigned int port)
{
	RakString out;
	RakString host;
	RakString remotePath;
	RakNet::RakString header;

	uri.SplitURI(header, host, remotePath);
	if (host.IsEmpty() || remotePath.IsEmpty())
		return out;

	out.Set("GET %s HTTP/1.0\r\n"
		"Host: %s:%i\r\n"
		"\r\n",
		remotePath.C_String(),
		host.C_String(),
		port);

	return out;
}