public RobloxResponse sendTrade(TradeResponseType type, String tradeJSON, String XRSFToken, String tradeID, String cookies) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.roblox.com/Trade/TradeHandler.ashx"); request.KeepAlive = true; request.Accept = "application/json, text/javascript, */*; q=0.01"; request.Headers.Add("Origin", @"http://www.roblox.com"); request.Headers.Add("X-CSRF-TOKEN", XRSFToken); request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"; request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.Referer = "http://www.roblox.com/Trade/TradeWindow.aspx?TradePartnerID=85503967"; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8"); request.Headers.Set(HttpRequestHeader.Pragma, "no-cache"); request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; String body = ""; if (type == TradeResponseType.Accept) { body = "TradeID=" + tradeID + "&cmd=maketrade&TradeJSON=" + tradeJSON; } else if (type == TradeResponseType.Decline) { body = "TradeID=" + tradeID + "&cmd=decline"; } else if (type == TradeResponseType.Send) { body = "cmd=send&TradeJSON=" + tradeJSON; } byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = RobloxUtils.decodeStream(response); using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8)) { RobloxResponse robloxResponse = JsonConvert.DeserializeObject <RobloxResponse>(readStream.ReadToEnd()); robloxResponse.data = (TradeResponseInfo)robloxResponse.data; return(robloxResponse); } }
public RobloxTradeInfoResponse getTradeInfo(String tradeSessionId, String XRSFToken, String cookies) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.roblox.com/Trade/TradeHandler.ashx"); request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"; request.Accept = "application/json, text/javascript, */*; q=0.01"; request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5"); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.Headers.Add("X-CSRF-TOKEN", XRSFToken); request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.Referer = "http://www.roblox.com/My/Money.aspx"; request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.Pragma, "no-cache"); request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = @"TradeID=" + tradeSessionId + "&cmd=pull"; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = RobloxUtils.decodeStream(response); using (BufferedStream receiveStream = new BufferedStream(responseStream)) { using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) { String s = readStream.ReadToEnd().Replace("\\\\", "").Replace("\\\"", "\"").Replace("\"{", "{").Replace("}\"", "}"); return(JsonConvert.DeserializeObject <RobloxTradeInfoResponse>(RobloxUtils.unicodeStringToNET(s))); } } }
/// <summary> /// Sends a message with the supplied subject and content an ID /// </summary> /// <param name="receiverId">ID of the receiver</param> /// <param name="subject">Message subject</param> /// <param name="content">Message body</param> /// <param name="cookies">Authentication cookie string</param> /// <returns>Returns the success of the message sending</returns> public bool sendMessage(int receiverId, String subject, String content, String cookies) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://m.roblox.com/messages/sendmessagework"); request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"; request.Accept = "text/html, */*; q=0.01"; request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5"); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.Referer = "http://m.roblox.com/messages/sendmessage?Id=" + receiverId; request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.Pragma, "no-cache"); request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; string body = @"__RequestVerificationToken=" + getRequestVerificationToken(receiverId, cookies) + "&RecipientId=" + receiverId + "&Subject=" + subject + "&Body=" + content + ""; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = RobloxUtils.decodeStream(response); using (BufferedStream receiveStream = new BufferedStream(responseStream)) { using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) { return(readStream.ReadToEnd().Contains("sent")); } } }
internal String getToken(long assetID, int expectedPrice, String cookies, CurrencyType currency) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://m.roblox.com/Catalog/VerifyPurchase?assetid=" + assetID + "&type=" + ((currency == CurrencyType.ROBUX) ? "robux" : "tickets") + "&expectedPrice=" + expectedPrice); request.KeepAlive = true; request.Accept = "text/html, */*; q=0.01"; request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"; request.Referer = "https://m.roblox.com/items/" + assetID; request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, sdch"); request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.8"); request.Headers.Set(HttpRequestHeader.Cookie, cookies); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = RobloxUtils.decodeStream(response); using (BufferedStream receiveStream = new BufferedStream(responseStream)) { using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) { return(RobloxUtils.parseToken(readStream.ReadToEnd())); } } }
public TradeList fetchTrades(String cookies, String XRSFToken, TradeType type, int startIndex) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.roblox.com/My/Money.aspx/GetMyItemTrades"); request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"; request.Accept = "*/*"; request.Headers.Set(HttpRequestHeader.AcceptLanguage, "en-US,en;q=0.5"); request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); request.ContentType = "application/json; charset=utf-8"; request.Headers.Add("X-CSRF-TOKEN", XRSFToken); request.Headers.Add("X-Requested-With", @"XMLHttpRequest"); request.Referer = "http://www.roblox.com/My/Money.aspx"; request.Headers.Set(HttpRequestHeader.Cookie, cookies); request.KeepAlive = true; request.Headers.Set(HttpRequestHeader.Pragma, "no-cache"); request.Headers.Set(HttpRequestHeader.CacheControl, "no-cache"); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; String a = ""; if (type == TradeType.Completed) { a = "completed"; } else if (type == TradeType.Outbound) { a = "outbound"; } else if (type == TradeType.Inbound) { a = "inbound"; } else if (type == TradeType.Inactive) { a = "inactive"; } string body = "{\"statustype\":\"" + a + "\",\"startindex\":" + startIndex + "}"; byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body); request.ContentLength = postBytes.Length; Stream stream = request.GetRequestStream(); stream.Write(postBytes, 0, postBytes.Length); stream.Close(); HttpWebResponse response; response = (HttpWebResponse)request.GetResponse(); Stream responseStream = RobloxUtils.decodeStream(response); using (BufferedStream receiveStream = new BufferedStream(responseStream)) { using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) { String s = readStream.ReadToEnd().Replace("\\\\", "").Replace("\\\"", "\"").Replace("\"{", "{").Replace("}\"", "}"); RootTradeList obj = JsonConvert.DeserializeObject <RootTradeList>(s); return(obj.d); } } }