httpClient.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import {getEncodeFun,getDecodeFun} from "./protoMap"
  2. const URL = 'http://60.205.190.38:80/Ohplay/Web/HttpToTcp';
  3. function post(request) {
  4. let encodeFun = getEncodeFun(request.servant);
  5. console.log(typeof encodeFun);
  6. //if (typeof encodeFun === "function") {
  7. let requestBuffer = encodeFun(request)
  8. //}
  9. return uni.request({
  10. //url:'https://test.api1.radio1964.com:80/Ohplay/Web/HttpToTcp'
  11. url: URL,
  12. header: {
  13. "X-Requested-With": "XMLHttpRequest",
  14. "Content-Type": "application/x-protobuf",
  15. 'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA'
  16. },
  17. method: 'POST',
  18. timeout: 15000,
  19. dataType: 'protobuf',
  20. responseType: 'arraybuffer',
  21. data: requestBuffer
  22. }).then((res) => {
  23. for (let response of res) {
  24. if (response !== null && response !== undefined && response.statusCode === 200) {
  25. try {
  26. let enc = new TextDecoder('utf-8')
  27. let resJson = JSON.parse(enc.decode(new Uint8Array(response.data))) //转化成json对象
  28. console.log(resJson);
  29. return {
  30. code: resJson.code,
  31. msg: resJson.info
  32. }
  33. } catch (e) {
  34. let decodeFun = getDecodeFun(request.servant)
  35. // if (typeof decodeFun === "function") {
  36. let data = decodeFun(response)
  37. console.log(data);
  38. let code = 0
  39. let msg = "success"
  40. if(typeof data.errInfo !== 'undefined'){
  41. code = data.errInfo.errorCode
  42. if(typeof data.errInfo.errorMessage === 'string'){
  43. msg = data.errInfo.errorMessage
  44. }else{
  45. msg = Buffer.from(data.errInfo.errorMessage).toString()
  46. }
  47. }
  48. //throw "Error2"
  49. return {
  50. code: code,
  51. msg: msg,
  52. data: data
  53. }
  54. // }
  55. }
  56. }
  57. }
  58. })
  59. }
  60. module.exports = post