public void StartCompile(string platform, string program = null, string repo = null, bool clean = false) { int retryCount = 5; while (true) { try { WebRequest request = WebRequest.Create("https://os.mbed.com/api/v2/tasks/compiler/start/"); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string requestPayload = string.Format("platform={0}&clean={1}", platform, clean ? "True" : "False"); if (!string.IsNullOrEmpty(program)) { requestPayload += string.Format("&program={0}", program); } if (!string.IsNullOrEmpty(repo)) { requestPayload += string.Format("&repo={0}", repo); } byte[] encodedPayload = Encoding.UTF8.GetBytes(requestPayload); request.GetRequestStream().Write(encodedPayload, 0, Encoding.UTF8.GetBytes(requestPayload).Length); WebResponse response = request.GetResponse(); CompileStartResponse compileResponse = new JavaScriptSerializer().Deserialize <CompileStartResponse>(new StreamReader(response.GetResponseStream()).ReadToEnd()); taskId = compileResponse.result.data.task_id; lastResponse = compileResponse; break; } catch (WebException webException) { retryCount--; System.Console.WriteLine("Error sending request :{0}, retries left: {1}", webException.Message, retryCount); if (retryCount == 0) { throw webException; } } } }
public void StartCompile(string platform, string program = null, string repo = null, bool clean = false) { int retryCount = 5; while (true) { try { WebRequest request = WebRequest.Create("https://developer.mbed.org/api/v2/tasks/compiler/start/"); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string requestPayload = string.Format("platform={0}&clean={1}", platform, clean ? "True" : "False"); if (!string.IsNullOrEmpty(program)) { requestPayload += string.Format("&program={0}", program); } if (!string.IsNullOrEmpty(repo)) { requestPayload += string.Format("&repo={0}", repo); } byte[] encodedPayload = Encoding.UTF8.GetBytes(requestPayload); request.GetRequestStream().Write(encodedPayload, 0, Encoding.UTF8.GetBytes(requestPayload).Length); WebResponse response = request.GetResponse(); CompileStartResponse compileResponse = new JavaScriptSerializer().Deserialize<CompileStartResponse>(new StreamReader(response.GetResponseStream()).ReadToEnd()); taskId = compileResponse.result.data.task_id; lastResponse = compileResponse; break; } catch (WebException webException) { retryCount--; System.Console.WriteLine("Error sending request :{0}, retries left: {1}", webException.Message, retryCount); if (retryCount == 0) { throw webException; } } } }
public void StartCompile(string platform, string program = null, string repo = null, bool clean = false) { WebRequest request = WebRequest.Create("https://developer.mbed.org/api/v2/tasks/compiler/start/"); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; string requestPayload = string.Format("platform={0}&clean={1}", platform, clean ? "True" : "False"); if (!string.IsNullOrEmpty(program)) { requestPayload += string.Format("&program={0}", program); } if (!string.IsNullOrEmpty(repo)) { requestPayload += string.Format("&repo={0}", repo); } byte[] encodedPayload = Encoding.UTF8.GetBytes(requestPayload); request.GetRequestStream().Write(encodedPayload, 0, Encoding.UTF8.GetBytes(requestPayload).Length); WebResponse response = request.GetResponse(); CompileStartResponse compileResponse = new JavaScriptSerializer().Deserialize<CompileStartResponse>(new StreamReader(response.GetResponseStream()).ReadToEnd()); taskId = compileResponse.result.data.task_id; lastResponse = compileResponse; }
public bool PollStatus(ICollection<string> messages, out bool failed) { string requestURL = string.Format("https://developer.mbed.org/api/v2/tasks/compiler/output/{0}", HttpUtility.UrlEncode(taskId)); WebRequest request = WebRequest.Create(requestURL); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "GET"; WebResponse response = request.GetResponse(); string jsonResponse = new StreamReader(response.GetResponseStream()).ReadToEnd(); CompileStartResponse compileResponse = new JavaScriptSerializer().Deserialize<CompileStartResponse>(jsonResponse); lastResponse = compileResponse; foreach (CompileMessage msg in compileResponse.result.data.new_messages) { if (msg.type == "cc") { messages.Add(string.Format("{0}: {1}: {2}: {3}", msg.severity, msg.file, msg.line, msg.message)); messages.Add(string.Format("{0}", msg.text)); } else if (msg.type == "progress") { messages.Add(string.Format("{0}: {1} ({2:F} %)", msg.action, msg.file, msg.percent)); } else if (msg.type == "tool_error") { messages.Add(string.Format("{0}: {1}", msg.type, msg.message)); } } failed = !compileResponse.result.data.compilation_success; if (failed && compileResponse.result.data.task_complete) { messages.Add(string.Format("Raw response: {0}", jsonResponse)); } return compileResponse.result.data.task_complete; }
public bool PollStatus(ICollection<string> messages, out bool failed) { string requestURL = string.Format("https://developer.mbed.org/api/v2/tasks/compiler/output/{0}", HttpUtility.UrlEncode(taskId)); bool complete = false; failed = true; CompileStartResponse compileResponse; int retryCount = 5; while (true) { try { WebRequest request = WebRequest.Create(requestURL); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "GET"; // 30s should be enough request.Timeout = 30000; WebResponse response = request.GetResponse(); string jsonResponse = new StreamReader(response.GetResponseStream()).ReadToEnd(); compileResponse = new JavaScriptSerializer().Deserialize<CompileStartResponse>(jsonResponse); lastResponse = compileResponse; foreach (CompileMessage msg in compileResponse.result.data.new_messages) { if (msg.type == "cc") { messages.Add(string.Format("{0}: {1}: {2}: {3}", msg.severity, msg.file, msg.line, msg.message)); messages.Add(string.Format("{0}", msg.text)); } else if (msg.type == "progress") { messages.Add(string.Format("{0}: {1} ({2:F} %)", msg.action, msg.file, msg.percent)); } else if (msg.type == "tool_error") { messages.Add(string.Format("{0}: {1}", msg.type, msg.message)); } } failed = !compileResponse.result.data.compilation_success; if (failed && compileResponse.result.data.task_complete) { messages.Add(string.Format("Raw response: {0}", jsonResponse)); } complete = compileResponse.result.data.task_complete; break; } catch (WebException webException) { retryCount--; System.Console.WriteLine("Error sending request :{0}, retries left: {1}", webException.Message, retryCount); if (retryCount == 0) { throw webException; } } } if (retryCount < 0) { complete = true; } return complete; }
public bool PollStatus(ICollection <string> messages, out bool failed) { string requestURL = string.Format("https://os.mbed.com/api/v2/tasks/compiler/output/{0}", HttpUtility.UrlEncode(taskId)); bool complete = false; failed = true; CompileStartResponse compileResponse; int retryCount = 5; while (true) { try { WebRequest request = WebRequest.Create(requestURL); request.Headers["Authorization"] = "Basic " + authInfo; request.Method = "GET"; // 30s should be enough request.Timeout = 30000; WebResponse response = request.GetResponse(); string jsonResponse = new StreamReader(response.GetResponseStream()).ReadToEnd(); compileResponse = new JavaScriptSerializer().Deserialize <CompileStartResponse>(jsonResponse); lastResponse = compileResponse; foreach (CompileMessage msg in compileResponse.result.data.new_messages) { if (msg.type == "cc") { messages.Add(string.Format("{0}: {1}: {2}: {3}", msg.severity, msg.file, msg.line, msg.message)); messages.Add(string.Format("{0}", msg.text)); } else if (msg.type == "progress") { messages.Add(string.Format("{0}: {1} ({2:F} %)", msg.action, msg.file, msg.percent)); } else if (msg.type == "tool_error") { messages.Add(string.Format("{0}: {1}", msg.type, msg.message)); } } failed = !compileResponse.result.data.compilation_success; if (failed && compileResponse.result.data.task_complete) { messages.Add(string.Format("Raw response: {0}", jsonResponse)); } complete = compileResponse.result.data.task_complete; break; } catch (WebException webException) { retryCount--; System.Console.WriteLine("Error sending request :{0}, retries left: {1}", webException.Message, retryCount); if (retryCount == 0) { throw webException; } } } if (retryCount < 0) { complete = true; } return(complete); }