http.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. import Axios from 'axios';
  2. import { PageList } from '../pages/Router';
  3. import app from '../../app.json';
  4. //config
  5. //const hostUrl = 'http://161.117.183.142/';
  6. const hostUrl = app.product ? 'https://csms.evctechnology.com/' : 'http://161.117.183.142/';
  7. const service = app.product ? 'juiceplus/' : 'steve/'
  8. export const host = hostUrl;
  9. const DEBUG = app.debug && !app.product;
  10. Axios.defaults.timeout = 10000;
  11. Axios.interceptors.response.use((response) => {
  12. if (DEBUG) {
  13. console.log('-------', response.config.method, response.config.url);
  14. console.log('-------', JSON.stringify(response.data));
  15. console.log('-------', response.status);
  16. }
  17. if (response.data.code == '401') {
  18. setAccessToken('');
  19. startPage(PageList.login, {action: '401'});
  20. return Promise.reject('Need sign in');
  21. }
  22. return response.data;
  23. }, (error) => {
  24. console.info('-------error', error);
  25. return Promise.reject(error);
  26. });
  27. export const get = (path, params) => {
  28. return new Promise((resolve, reject) => {
  29. Axios.get(host + service + path, {
  30. params: params,
  31. method: 'GET',
  32. headers: {
  33. 'Accept': 'application/json',
  34. 'accessToken': global.accessToken ?? ''
  35. }
  36. }).then(res => {
  37. if (res.success) {
  38. resolve(res);
  39. } else if (res.msg) {
  40. reject(res.msg);
  41. } else {
  42. reject('Request Failed');
  43. }
  44. }).catch(err => {
  45. console.info('HTTP-ERROR', err);
  46. reject(err);
  47. });
  48. });
  49. }
  50. export const post = (path, params) => {
  51. return new Promise((resolve, reject) => {
  52. Axios.post(host + service + path, params, {
  53. method: 'POST',
  54. headers: {
  55. 'Accept': 'application/json',
  56. 'accessToken': global.accessToken ?? ''
  57. }
  58. }).then(res => {
  59. if (res.success) {
  60. resolve(res);
  61. } else if (res.msg) {
  62. reject(res.msg);
  63. } else {
  64. reject('Request Failed');
  65. }
  66. }).catch(err => {
  67. console.info('HTTP-ERROR', err);
  68. reject(err);
  69. });
  70. });
  71. }
  72. export const upload = (path, params, header) => {
  73. return new Promise((resolve, reject) => {
  74. Axios.post(host + service + path, params, {
  75. method: 'POST',
  76. headers: {
  77. 'Accept': 'application/json',
  78. 'Content-Type': 'multipart/form-data',
  79. 'accessToken': global.accessToken ?? '',
  80. ...header
  81. }
  82. }).then(res => {
  83. if (res.success) {
  84. resolve(res);
  85. } else if (res.msg) {
  86. reject(res.msg);
  87. } else {
  88. reject('Request Failed');
  89. }
  90. }).catch(err => {
  91. console.info('HTTP-ERROR', err);
  92. reject(err);
  93. });
  94. })
  95. }
  96. export const GET = (url, params) => {
  97. var request = host + service + url;
  98. if (params) {
  99. var keys = ''
  100. for (let key in params) {
  101. if (keys != '') {
  102. keys += '&';
  103. }
  104. keys += key + '=' + encodeURI(params[key]);
  105. }
  106. if (keys !== '') {
  107. request += '?' + keys;
  108. }
  109. }
  110. return new Promise((resolve, reject) => {
  111. fetch(request, {
  112. method: 'GET',
  113. headers: {
  114. 'Accept': 'application/json',
  115. 'accessToken': global.accessToken ?? ''
  116. }.then((response) => {
  117. if (response.ok) {
  118. return response.json();
  119. } else {
  120. reject(response);
  121. }
  122. }).then(data => {
  123. resolve(data);
  124. }).catch((error) => {
  125. reject(error);
  126. })
  127. });
  128. });
  129. }
  130. export const POST = (url, params) => {
  131. return new Promise((resolve, reject) => {
  132. fetch(host + service + url, {
  133. method: 'POST',
  134. headers: {
  135. 'Accept': 'application/json',
  136. 'content-type': 'application/json',
  137. 'accessToken': global.accessToken ?? ''
  138. },
  139. body: JSON.stringify(params)
  140. }).then((response) => {
  141. if (response.ok) {
  142. return response.json();
  143. } else {
  144. reject(response);
  145. }
  146. }).then(data => {
  147. resolve(data);
  148. }).catch((error) => {
  149. reject(error);
  150. })
  151. });
  152. }
  153. export const SOCKET = (url) => {
  154. const ws = new WebSocket(url); // like 'wss://vbea.com/path'
  155. ws.onopen = () => {
  156. // connection opened
  157. ws.send('something'); // send a message
  158. };
  159. ws.onmessage = (e) => {
  160. // a message was received
  161. console.log(e.data);
  162. };
  163. ws.onerror = (e) => {
  164. // an error occurred
  165. console.log(e.message);
  166. };
  167. ws.onclose = (e) => {
  168. // connection closed
  169. console.log(e.code, e.reason);
  170. };
  171. }
  172. export const setAccessToken = token => {
  173. global.accessToken = token;
  174. }