private string GetExecutionResultLinkId(CodeExecutionRequest codeExecutionRequest, CodeExecutionRequestData requestData) { using (var client = new CookieAwareWebClient()) { client.CookieContainer.Add(requestData.CookieCollection); client.UploadValues(IdeOneBaseUrl + IdeOneSubmissionPostfix, GetCodeSubmissionRequestParameters(codeExecutionRequest, requestData)); return(client.ResponseUri.AbsolutePath.Replace("/", "")); } }
private CodeExecutionRequestData ComposeExecutionRequestData() { var requestData = new CodeExecutionRequestData(); string httpResponse; using (var client = new CookieAwareWebClient()) { httpResponse = client.DownloadString(IdeOneBaseUrl); requestData.CookieCollection = client.ResponseCookies; } requestData.ProtectionFieldValues = GetProtectedFieldValues(httpResponse); return(requestData); }
private NameValueCollection GetCodeSubmissionRequestParameters(CodeExecutionRequest codeExecutionRequest, CodeExecutionRequestData requestData) { var nameValueCollection = new NameValueCollection(); foreach (var protectionFieldValue in requestData.ProtectionFieldValues) { nameValueCollection.Add(protectionFieldValue.Key, protectionFieldValue.Value); } nameValueCollection.Add("file", codeExecutionRequest.SourceCode); nameValueCollection.Add("input", PrepareInputParameters(codeExecutionRequest.Input)); nameValueCollection.Add("timelimit", "0"); nameValueCollection.Add("_lang", ((int)codeExecutionRequest.CodeLanguage).ToString()); nameValueCollection.Add("public", "0"); nameValueCollection.Add("run", "1"); return(nameValueCollection); }