houjie 4 rokov pred
rodič
commit
a28ff10633
2 zmenil súbory, kde vykonal 127 pridanie a 1 odobranie
  1. 104 0
      common/httpClient.js
  2. 23 1
      pages/index/mine.vue

+ 104 - 0
common/httpClient.js

@@ -0,0 +1,104 @@
+import {
+	common,
+	user
+} from '../proto/proto.js';
+
+const URL = 'http://60.205.190.38:80/Ohplay/Web/HttpToTcp';
+
+const protoMap = {}
+
+function getMsgWebsocket(version, server, servant, buffer) {
+	return common.MsgWebsocket.create({
+		version: version,
+		app: 1,
+		server: server,
+		servant: servant,
+		data: buffer,
+	})
+}
+
+protoMap['1005'] = {
+	requestEncode: function(request) { //登录请求的编码
+		let loginMessage = user.login_req.create({
+			phone: Buffer.from(request.data.phone),
+			type: request.data.type,
+			verifyInfo: Buffer.from(request.data.verifyInfo),
+		})
+		let buffer = user.login_req.encode(loginMessage).finish()
+		let requestMessage = getMsgWebsocket(1, request.server, request.servant, buffer)
+		let requestBuffer = common.MsgWebsocket.encode(requestMessage).finish()
+		return new Uint8Array([...requestBuffer]).buffer
+	},
+	responseDecode: function(response) { //登录响应的解码
+		let resBuf = Buffer.from(response.data)
+		let resMessage = common.MsgWebsocket.decode(resBuf)
+		let loginRspBuf = resMessage.data
+		let loginRspMessage = user.login_rsp.decode(loginRspBuf)
+		let obj = user.login_rsp.toObject(loginRspMessage, {
+			longs: String,
+			enums: String,
+		})
+		return obj
+	}
+}
+
+// protoMap['1005'] = {
+// 	requestEncode : function(request){//请求的编码
+// }
+
+
+function post(request) {
+	let encodeFun = protoMap[request.servant.toString()].requestEncode;
+	console.log(typeof encodeFun);
+	//if (typeof encodeFun === "function") {
+	let requestBuffer = encodeFun(request)
+	//}
+	return uni.request({
+		//url:'https://test.api1.radio1964.com:80/Ohplay/Web/HttpToTcp'
+		url: URL,
+		header: {
+			"X-Requested-With": "XMLHttpRequest",
+			"Content-Type": "application/x-protobuf",
+			'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA'
+		},
+		method: 'POST',
+		timeout: 15000,
+		dataType: 'protobuf',
+		responseType: 'arraybuffer',
+		data: requestBuffer
+	}).then((res) => {
+		for (let response of res) {
+			if (response !== null && response !== undefined && response.statusCode === 200) {
+				try {
+					let enc = new TextDecoder('utf-8')
+					let resJson = JSON.parse(enc.decode(new Uint8Array(response.data))) //转化成json对象
+					console.log(resJson);
+					return {
+						code: resJson.code,
+						msg: resJson.info
+					}
+				} catch (e) {
+					let decodeFun = protoMap[request.servant.toString()].responseDecode
+					// if (typeof decodeFun === "function") {
+						let data = decodeFun(response)
+						console.log(data);
+						let code = 0
+						let msg = "success"
+						if(data.errInfo !== undefined){
+							code = data.errInfo.errorCode
+							msg = Buffer.from(data.errInfo.errorMessage).toString()
+						}
+						return {
+							code: code,
+							msg: msg,
+							data: data
+						}
+					// }
+				}
+			}
+		}
+	})
+
+}
+
+module.exports = post

+ 23 - 1
pages/index/mine.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="content">
-		<button type="default" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber"
+		<button type="default" open-type="getPhoneNumber" @getphonenumber="decryptPhoneNumber" v-if="false"
 			@click="login">微信授权一键登录</button>
 
 		<button @click="httpTest" style="margin-top: 10rps;">h5 axios http请求</button>
@@ -10,6 +10,7 @@
 </template>
 
 <script>
+	import httpClient from '../../common/httpClient.js'
 	import {common,	user} from '../../proto/proto.js';
 	//const protobuf = require("protobufjs/minimal");
 	const axios = require('axios');
@@ -50,6 +51,27 @@
 				console.log(e.detail.encryptedData)
 			},
 			wxHttpTest() {
+				httpClient({
+					server:2,
+					servant:1005,
+					data:{
+						phone:'3246541321',
+						type:1,
+						verifyInfo:'asdasd'
+					}
+				})
+				.then((res) =>{
+					console.log(res)
+					if(res.code === 0){//成功
+						
+					}else{
+						//失败
+					}
+				}, (err) => {
+					console.log(err);
+				})
+			},
+			wxHttpTest1() {
 				let typeStr = Object.prototype.toString.call(requestBuffer.buffer)
 				console.log(typeStr);
 				let requestArrayBuf = new Uint8Array([...requestBuffer]).buffer