thomasjosif

Steamworks

Jan 1st, 2018
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1.  
  2. public void GetData()
  3. {
  4. char encodedjson[4096];
  5. Handle json = CreateJSON();
  6.  
  7. JSONSetInteger(json, "gameType", g_iAppID);
  8. JSONSetString(json, "ip", g_sHostIP);
  9. JSONSetString(json, "name", g_sServerName);
  10. JSONSetInteger(json, "port", g_iHostPort);
  11.  
  12. EncodeJSON(json, encodedjson, sizeof(encodedjson), false);
  13.  
  14. char url[512];
  15. Format(url, sizeof(url), "%s%s", API_URL, API_PATH);
  16.  
  17. Handle request = SteamWorks_CreateHTTPRequest(k_EHTTPMethodPOST, url);
  18.  
  19. SteamWorks_SetHTTPRequestHeaderValue(request, "Content-Type", "application/json");
  20. SteamWorks_SetHTTPRequestHeaderValue(request, "Authorization", "Bearer sagdhgasdhggahsdhagsdghahgsd");
  21. SteamWorks_SetHTTPRequestRawPostBody(request, "application/json", encodedjson, sizeof(encodedjson));
  22. SteamWorks_SetHTTPCallbacks(request, WebCallback_LoadMotdUrl);
  23.  
  24. if(!SteamWorks_SendHTTPRequest(request))
  25. {
  26. LogError("Failed to motd url from web api.");
  27. }
  28. }
  29.  
  30. public int WebCallback_LoadMotdUrl(Handle request, bool failure, bool successful, EHTTPStatusCode code, any data)
  31. {
  32. // Web response
  33. if(!failure && successful && code == k_EHTTPStatusCode200OK)
  34. SteamWorks_GetHTTPResponseBodyCallback(request, WebCallback_LoadMotdUrl_Response);
  35. else
  36. SetFailState("Failed to get MOTD URL from motdmod api! (Request failed!)");
  37.  
  38. // Delete handle
  39. delete request;
  40.  
  41. return;
  42. }
  43.  
  44. public int WebCallback_LoadMotdUrl_Response(char[] buffer)
  45. {
  46. DebugMessage("WebCallback_LoadMotdUrl_Response() :: init. response: %s", buffer);
  47.  
  48. KeyValues kv = CreateKeyValues("Data");
  49. if(!kv.ImportFromString(buffer))
  50. SetFailState("Failed to get MOTD URL from motdmod api! (Response is not KV)");
  51. kv.JumpToKey("results");
  52. kv.GetString("motdUrl", g_sMotdUrl, sizeof(g_sMotdUrl));
  53. kv.GetString("noHtmlText", g_sNoHTML, sizeof(g_sNoHTML));
  54. DebugMessage(g_sMotdUrl);
  55. DebugMessage(g_sNoHTML);
  56.  
  57. delete kv;
  58.  
  59. DebugMessage("WebCallback_LoadMotdUrl_Response() :: complete");
  60. }
Advertisement
Add Comment
Please, Sign In to add comment