我正在尝试通过Axios发出HTTP请求,此响应是对我的后端Flask应用程序登录端点的本机响应,但是,当我运行Expo时,键入用户名并单击“ Login”,我的“在线状态”仍为“离线”。有人可以帮我吗?
这是我的烧瓶代码:
from flask import Flask, request, abort, jsonify
app = Flask(__name__)
users = []
@app.route("/login", methods=["POST"])
def login():
username = request.json.get('username', None)
if username is None or username in users:
abort(401)
else:
users.append(username)
return jsonify({
'status': 'OK',
'message': 'Successfully Logged in'
})
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
#app.run(debug=True)
#app.run(debug=True, host='http://127.0.0.1:5000')
#app.run(debug=True, host='http://146.203.130.213:5000')
这是我的本机代码:
import React from 'react';
import { StyleSheet, Text, View, TextInput, Button, FlatList } from
'react-native';
import axios from 'axios';
const serverUrl = '{my IP address}:5000';
//const serverUrl = 'http://127.0.0.1:5000';
const http = axios.create({
baseURL: serverUrl,
});
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
input: '',
messages: [],
};
}
onLogin() {
const { isLoggedIn, username } = this.state;
if (!isLoggedIn) {
http.post('/login', {username})
.then(() => this.setState({isLoggedIn: true}))
.catch((err) => console.log(err))
}
}
render() {
const { messages, isLoggedIn } = this.state;
return (
<View style={styles.container}>
<View>
<Text>Login</Text>
<TextInput
onChangeText={(val) => this.setState({username: val})}
/>
<Button title='Login' onPress={() => this.onLogin()} />
<Text> Online Status: {isLoggedIn ? 'Online' : 'OffLine'}</Text>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
任何帮助将不胜感激。