Browse Source

feat: support login request

pull/1/head
kdxcxs 4 years ago
parent
commit
9c2f80a269
  1. 26
      src/api/HTTP.js
  2. 32
      src/component/YooLogin.js

26
src/api/HTTP.js

@ -0,0 +1,26 @@
import iconv from 'iconv-lite';
import {Buffer} from 'buffer';
function post(url, data) {
return new Promise(function (resolve, reject) {
const request = new XMLHttpRequest();
request.onload = () => {
if (request.status === 200) {
resolve(iconv.decode(Buffer.from(request.response), 'gbk'));
} else {
reject(new Error(request.statusText));
}
};
request.onerror = () => reject(new Error(request.statusText));
request.responseType = 'arraybuffer';
request.open('POST', url);
for (let headerKey in data.headers) {
request.setRequestHeader(headerKey, data.headers[headerKey]);
}
request.send(data.body);
});
}
export {post};

32
src/component/YooLogin.js

@ -1,5 +1,7 @@
import React, {Component} from 'react';
import YooLoginUI from '../ui/YooLoginUI';
import CookieManager from '@react-native-community/cookies';
import {post} from '../api/HTTP';
export default class YooLogin extends Component {
constructor(props) {
@ -21,7 +23,35 @@ export default class YooLogin extends Component {
this.setState({password: value});
}
login(onFail) {}
login(onFail) {
post('http://eol.ctbu.edu.cn/meol/loginCheck.do', {
headers: {
'Cache-Control': 'max-age=0',
'Upgrade-Insecure-Requests': '1',
Origin: 'http://eol.ctbu.edu.cn',
'Content-Type': 'application/x-www-form-urlencoded',
'User-Agent': 'YooMooc',
Referer:
'http://eol.ctbu.edu.cn/meol/common/security/login.jsp?enterLid=46445',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7',
},
body:
'logintoken=' +
new Date().getTime() +
'&enterLid=46445' +
'&IPT_LOGINUSERNAME=' +
this.state.username +
'&IPT_LOGINPASSWORD=' +
this.state.password,
}).then((response) => {
if (/<title>(.|\n)*用户登录(.|\n)*<\/title>/.test(response)) {
onFail();
CookieManager.clearAll();
} else if (/<title>(.|\n)*网络课程(.|\n)*<\/title>/.test(response)) {
// TODO:onSuccess();
}
});
}
render() {
return (

Loading…
Cancel
Save