您好,我正在创建一个React Native移动应用程序,并且正在使用一个Java后端,该后端将与IBM Watson开发人员云进行通信。
无论出于什么原因,当我调用127.0.0.1:8080上托管的其余API时,都得到network request failed
却没有有用的调试信息。我环顾四周,似乎其他人也遇到了同样的问题,但是他们的修复都没有对我有用。我的后端当前正在工作,并且我已使用POST方法在127.0.0.1:8080/test/chat中与邮递员一起测试了以下正文。
{
"id":"1",
"name":"John",
"message":"hello"
}
我的代码如下。任何提示都将不胜感激。
Backend.js
import React, { Component } from 'react';
import { TouchableOpacity, View, ActivityIndicator, Text, Alert } from 'react-native';
let myApiUrl = "http://127.0.0.1:8080";
let path = "test/chat";
export const sendMessage = async () => fetch(`${myApiUrl}/${path}`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: '1',
name: 'john',
message: 'hi',
//context: 'null'
})
}).then((response) => response.json())
.then((responseJson) => {
alert(response.Json.output.text);
})
.catch((error) => {
console.error(error);
});
Chatbot.js
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
TouchableOpacity,
KeyboardAvoidingView,
AsyncStorage
} from 'react-native';
import { GiftedChat } from 'react-native-gifted-chat';
import { sendMessage } from '../components/Backend';
export default class Chatbot extends Component {
state = {
messages: [],
text: '',
context: '',
output: '',
message: 'book'
};
//onSend(messages = []) {
// this.setState(previousState => ({
// messages: GiftedChat.append(previousState.messages, messages),
// }))
//}
testSend() {
sendMessage().then((data) => {
console.log(data);
}).catch((error) => {
console.log("Api call error");
alert(error.message);
});
}
componentWillMount() {
}
render() {
return (
<TouchableOpacity onPress={() => { this.testSend() }} style={styles.container}>
<Text style={styles.title}>
Send
</Text>
</TouchableOpacity>
);
}
}
答案 0 :(得分:1)
如果您在Android上运行,则需要使用计算机的IP地址而不是127.0.0.1
答案 1 :(得分:1)
使用计算机的IP地址或将“ myApiUrl”更改为“ 10.0.2.2” 有关更多信息,请访问android开发人员文档emulator networking