PhalApi.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /**
  2. * PhalApi框架 React-Naitve请求SDK
  3. *
  4. * "ダSimVlove辉"提供,QQ:254059780 有好的意见或建议请联系我 2016-03-08
  5. *
  6. * 分为3种请求方式:get,post
  7. *
  8. * 所有请求均统一传递4个参数值(请求地址,接口名称.请求参数GET传递拼接好的参数
  9. * Post传递数组key-value值,回调函数)
  10. *
  11. * 统一使用方式如下
  12. import PhalApi from 'sdk所在目录'
  13. const data = {user_id: "2"}
  14. PhalApi.apiPost("http://192.168.1.107/PhalApi_1.3.2/Public", "User.getBaseInfo", data, (rs) => {
  15. if(rs.ret == 200){
  16. //成功处理
  17. }else{
  18. //失败处理
  19. }
  20. })
  21. * 如果想返回json 使用response.json()
  22. * 如果只要返回普通的string response.text()
  23. *
  24. */
  25. // 配置调试
  26. const debug = false;
  27. export default PhalApi = new class {
  28. /*
  29. * 普通Post方式请求
  30. */
  31. apiPost(api_url, api_name, data, callback) {
  32. const textBody = this.urlForQuery(data)
  33. const full_api = api_url + "/"
  34. const fetchOptions = {
  35. method: 'POST',
  36. headers: {
  37. "Content-Type": "application/x-www-form-urlencoded"
  38. },
  39. body: 'service=' + api_name + '&' + textBody
  40. };
  41. fetch(full_api, fetchOptions)
  42. .then(response => response.json())
  43. .then((responseText) => {
  44. callback(textBody)
  45. if (debug)
  46. console.log(responseText);
  47. })
  48. .catch((error) => {
  49. if (debug)
  50. console.warn(error);
  51. });
  52. }
  53. /*
  54. * 普通Get方式请求
  55. */
  56. apiGet(api_url, api_name, data, callback) {
  57. const textBody = this.urlForQuery(data)
  58. const full_api = api_url + "?service=" + api_name + "&" + textBody
  59. fetch(full_api)
  60. .then((response) => response.json())
  61. .then((responseText) => {
  62. callback(responseText)
  63. if (debug)
  64. console.log(responseText);
  65. })
  66. .catch((error) => {
  67. if (debug)
  68. console.warn(error);
  69. });
  70. }
  71. // 相关参数的拼接
  72. urlForQuery(data) {
  73. const querystring = Object.keys(data)
  74. .map(key => key + '=' + encodeURIComponent(data[key]))
  75. .join('&');
  76. return querystring;
  77. }
  78. }