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; }
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; }
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; }