WebUrlUtil.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System.Collections.Generic;
  2. namespace GFGGame
  3. {
  4. public static class WebUrlUtil
  5. {
  6. // 从URL解析SDK参数
  7. public static Dictionary<string, object> ParseSDKParamsFromUrl(string url)
  8. {
  9. Dictionary<string, object> paramsDict = new Dictionary<string, object>();
  10. // 简单的URL参数解析
  11. int queryIndex = url.IndexOf('?');
  12. if (queryIndex != -1)
  13. {
  14. string query = url.Substring(queryIndex + 1);
  15. string[] pairs = query.Split('&');
  16. foreach (string pair in pairs)
  17. {
  18. string[] keyValue = pair.Split('=');
  19. if (keyValue.Length == 2)
  20. {
  21. string key = keyValue[0];
  22. string value = keyValue[1];
  23. // URL解码(简单实现,实际可能需要更完整的解码)
  24. value = value.Replace("%20", " ");
  25. // 根据SDK文档,我们知道可能的参数
  26. switch (key)
  27. {
  28. case "user_id":
  29. paramsDict["user_id"] = value;
  30. break;
  31. case "user_name":
  32. paramsDict["user_name"] = value;
  33. break;
  34. case "uuid":
  35. paramsDict["uuid"] = value;
  36. break;
  37. case "sign":
  38. paramsDict["sign"] = value;
  39. break;
  40. case "timestamp":
  41. paramsDict["timestamp"] = value;
  42. break;
  43. case "cp_ext":
  44. paramsDict["cp_ext"] = value;
  45. break;
  46. }
  47. }
  48. }
  49. }
  50. return paramsDict;
  51. }
  52. }
  53. }