mine.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <template>
  2. <view class="content">
  3. <button
  4. type="default"
  5. open-type="getPhoneNumber"
  6. @getphonenumber="decryptPhoneNumber"
  7. v-if="false"
  8. @click="login"
  9. >
  10. 微信授权一键登录
  11. </button>
  12. <button @click="httpTest" style="margin-top: 10rps">
  13. h5 axios http请求
  14. </button>
  15. <button @click="wxHttpTest" style="margin-top: 10rps">
  16. miniprogram http请求
  17. </button>
  18. <button @click="chooseImage" style="margin-top: 10rps">上传图片</button>
  19. </view>
  20. </template>
  21. <script>
  22. import httpClient from "../../common/httpClient.js";
  23. // import {common, user} from '../../proto/bundle.js';
  24. // //const protobuf = require("protobufjs/minimal");
  25. // const axios = require('axios');
  26. // let loginMessage = user.login_req.create({
  27. // phone: '1234567890',
  28. // type: 1,
  29. // verifyInfo: '123456a',
  30. // })
  31. // //proto对象转buffer
  32. // let buffer = user.login_req.encode(loginMessage).finish()
  33. // console.log(buffer);
  34. // let requestMessage = common.MsgWebsocket.create({
  35. // version: 1,
  36. // app: 1,
  37. // server: 2,
  38. // servant: 1005,
  39. // data: buffer,
  40. // })
  41. // let requestBuffer = common.MsgWebsocket.encode(requestMessage).finish()
  42. // console.log(requestBuffer);
  43. // let typeStr = Object.prototype.toString.call(requestBuffer.buffer)
  44. // console.log(typeStr);
  45. export default {
  46. data() {
  47. return {};
  48. },
  49. methods: {
  50. //选择图片
  51. chooseImage() {
  52. let that = this;
  53. uni.chooseImage({
  54. count: 1,
  55. success(res) {
  56. console.log(res);
  57. let file = res.tempFiles[0];
  58. console.log(file);
  59. that.wxUploadImage(file);
  60. },
  61. });
  62. },
  63. //上传图片
  64. wxUploadImage(file) {
  65. httpClient
  66. .uploadFile(file.path, "image/jpeg")
  67. .then((result) => {
  68. console.log(result);
  69. })
  70. .catch((err) => {
  71. console.warn(err);
  72. });
  73. },
  74. login() {},
  75. decryptPhoneNumber(e) {
  76. console.log(e.detail.errMsg);
  77. console.log(e.detail.iv);
  78. console.log(e.detail.encryptedData);
  79. },
  80. wxHttpTest() {
  81. //try{
  82. httpClient
  83. .post({
  84. server: 2,
  85. servant: 1005,
  86. data: {
  87. // phone:Buffer.from('3246541321'),
  88. phone: "3246541321",
  89. type: 1,
  90. //verifyInfo:Buffer.from('asdasd')
  91. verifyInfo: "asdasd",
  92. data: {},
  93. },
  94. })
  95. .then(
  96. (res) => {
  97. console.log(res);
  98. /* res的结构
  99. {
  100. code:0,错误码 number类型
  101. msg:"",错误消息 string类型
  102. data:对应loginRsp的js对象
  103. }
  104. */
  105. if (res.code === 0) {
  106. //成功
  107. } else {
  108. //失败
  109. }
  110. },
  111. (err) => {
  112. //出现异常
  113. console.log(err);
  114. }
  115. );
  116. },
  117. wxHttpTest1() {
  118. let typeStr = Object.prototype.toString.call(requestBuffer.buffer);
  119. console.log(typeStr);
  120. let requestArrayBuf = new Uint8Array([...requestBuffer]).buffer;
  121. uni
  122. .request({
  123. //url:'https://test.api1.radio1964.com:80/Ohplay/Web/HttpToTcp'
  124. url: "http://60.205.190.38:80/Ohplay/Web/HttpToTcp",
  125. header: {
  126. "X-Requested-With": "XMLHttpRequest",
  127. "Content-Type": "application/x-protobuf",
  128. Token:
  129. "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA",
  130. },
  131. method: "POST",
  132. timeout: 15000,
  133. dataType: "protobuf",
  134. responseType: "arraybuffer",
  135. data: requestArrayBuf,
  136. })
  137. .then(
  138. (res) => {
  139. console.log(res);
  140. for (let response of res) {
  141. if (
  142. response !== null &&
  143. response !== undefined &&
  144. response.statusCode === 200
  145. ) {
  146. try {
  147. let enc = new TextDecoder("utf-8");
  148. let res = JSON.parse(
  149. enc.decode(new Uint8Array(response.data))
  150. ); //转化成json对象
  151. console.log(res);
  152. } catch (e) {
  153. //let resBuf = protobuf.util.newBuffer(response.data)
  154. let resBuf = Buffer.from(response.data);
  155. //console.log(resBuf.toString());
  156. let resMessage = common.MsgWebsocket.decode(resBuf);
  157. console.log(resMessage);
  158. let loginRspBuf = resMessage.data;
  159. console.log(loginRspBuf);
  160. let loginRspMessage = user.login_rsp.decode(loginRspBuf);
  161. console.log(loginRspMessage);
  162. let obj = user.login_rsp.toObject(loginRspMessage, {
  163. longs: String,
  164. enums: String,
  165. });
  166. console.log(obj);
  167. console.log(
  168. `errorMessage = ${Buffer.from(
  169. loginRspMessage.errInfo.errorMessage
  170. ).toString()}`
  171. );
  172. //console.log(Buffer.from(loginRspMessage.errInfo.errorMessage).toString());
  173. }
  174. }
  175. }
  176. },
  177. (err) => {
  178. console.log(err);
  179. }
  180. );
  181. },
  182. httpTest() {
  183. //测试http请求
  184. // let blob = new Blob([requestBuffer], {
  185. // type: 'buffer'
  186. // });
  187. // 将请求数据encode成二进制,encode是proto.js提供的方法
  188. function transformRequest(data) {
  189. return common.MsgWebsocket.encode(requestMessage).finish();
  190. }
  191. axios
  192. .create({
  193. timeout: 15000,
  194. method: "post",
  195. headers: {
  196. "X-Requested-With": "XMLHttpRequest",
  197. "Content-Type": "application/octet-stream",
  198. //'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA'
  199. },
  200. responseType: "arraybuffer",
  201. })
  202. .post("http://60.205.190.38:80/Ohplay/Web/HttpToTcp", requestMessage, {
  203. transformRequest: transformRequest,
  204. })
  205. .then(
  206. (response) => {
  207. console.log(response);
  208. if (response.status === 200 /* && response.data.byteLength>0*/) {
  209. try {
  210. let enc = new TextDecoder("utf-8");
  211. let res = JSON.parse(enc.decode(new Uint8Array(response.data))); //转化成json对象
  212. console.log(res);
  213. } catch (e) {
  214. //let resBuf = protobuf.util.newBuffer(response.data)
  215. let resBuf = Buffer.from(response.data);
  216. console.log(resBuf.toString());
  217. let resMessage = common.MsgWebsocket.decode(resBuf);
  218. let loginRspBuf = resMessage.data;
  219. let loginRspMessage = user.login_rsp.decode(loginRspBuf);
  220. let obj = user.login_rsp.toObject(loginRspMessage, {
  221. longs: String,
  222. enums: String,
  223. });
  224. console.log(obj);
  225. console.log(
  226. `errorMessage = ${Buffer.from(
  227. loginRspMessage.errInfo.errorMessage
  228. ).toString()}`
  229. );
  230. }
  231. }
  232. },
  233. (err) => {
  234. console.log(err);
  235. }
  236. );
  237. },
  238. },
  239. };
  240. </script>
  241. <style>
  242. .content {
  243. display: flex;
  244. flex-direction: column;
  245. align-items: center;
  246. justify-content: center;
  247. margin: 20rpx;
  248. }
  249. </style>