网络请求失败反应本机,在邮递员中工作
Network request failed react native, works in postman
您好,我正在创建一个 React 本机移动应用程序,我正在使用一个 java 后端,它将与 IBM watson 开发人员云进行通信。
无论出于何种原因,当我调用托管在 127.0.0.1:8080 上的其余 API 时,我得到的 network request failed
没有有用的调试信息。我环顾四周,似乎其他人也遇到了同样的问题,但 none 他们的修复对我有用。我的后端目前正在工作,我已经使用 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>
);
}
}
如果您在 Android 上 运行,则需要使用计算机的 IP 地址而不是 127.0.0.1
使用您计算机的 IP 地址或将 "myApiUrl" 更改为“10.0.2.2”
有关详细信息,请访问 android 开发人员文档 emulator networking
您好,我正在创建一个 React 本机移动应用程序,我正在使用一个 java 后端,它将与 IBM watson 开发人员云进行通信。
无论出于何种原因,当我调用托管在 127.0.0.1:8080 上的其余 API 时,我得到的 network request failed
没有有用的调试信息。我环顾四周,似乎其他人也遇到了同样的问题,但 none 他们的修复对我有用。我的后端目前正在工作,我已经使用 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>
);
}
}
如果您在 Android 上 运行,则需要使用计算机的 IP 地址而不是 127.0.0.1
使用您计算机的 IP 地址或将 "myApiUrl" 更改为“10.0.2.2” 有关详细信息,请访问 android 开发人员文档 emulator networking