public static string buildIP(string baseIP, CTRProductStuff.Devices device, uint deviceID, CTRProductStuff.Action action, string extraOptions = "") { string address = baseIP; address += "?"; switch (device) { case CTRProductStuff.Devices.None: break; //No device selected, fall through default: address += "device=" + CTRProductStuff.DeviceMap[device]; break; } address += "&"; address += "id=" + deviceID; address += "&"; switch (action) { case CTRProductStuff.Action.None: break; //Just calling the address for a ping case CTRProductStuff.Action.SetID: case CTRProductStuff.Action.SetDeviceName: case CTRProductStuff.Action.UpdateFirmware: address += CTRProductStuff.ActionMap[action] + extraOptions; break; default: address += CTRProductStuff.ActionMap[action]; break; } address = Uri.EscapeUriString(address); return(address); }
public static string HttpGet(string ip, CTRProductStuff.Devices device, uint deviceID, CTRProductStuff.Action action, string extraOptions = "", int timeout = 500) { string address = buildIP(ip, device, deviceID, action, extraOptions); Console.WriteLine(address); string retval = ""; Form1.GetInstance().Invoke(new Action(() => { Form1.GetInstance().returnList.Items.Add("GET: " + address); })); //Request a GET at specified address WebRequest request = WebRequest.Create(address); request.Timeout = timeout; try { //Stream malarky to get response from GET request using (WebResponse response = request.GetResponse()) { Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); //Got the string resposne retval = reader.ReadToEnd(); //Clean up afterwards reader.Close(); dataStream.Close(); response.Close(); } } catch (Exception e) { Console.WriteLine(e.ToString()); retval = "Failed"; } Form1.GetInstance().Invoke(new Action(() => { Form1.GetInstance().returnList.Items.Add(retval); })); //Return that string return(retval); }