React:监听设备(API端点)



我有一个只有一个端点API的设备(smsmmachine)。我的目标是去听asyncronous设备沟通,谁该设备做自动以及一个API调用参数的响应发送短信为例。

我尝试使用以下代码(片段),其中我传递了user/password参数:

useEffect(() => {
const fetchData = async () => {
try{
const response = await fetch(`goip_get_status.html`, {
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Authorization': 'Basic ' + btoa(`${username}:${password}`)
}})

const json= await response.json();

if (response.ok && response.status === 200) {
console.log("Connection made ", response);
} else if (response.status >= 400 && response.status < 500 && response.status !== 429) 
{
console.log("Client side error ", response);
}
console.log("response:",response);
console.log("json:",json);
const parsedData = JSON.parse(json.data);
setData((data) => [...data, parsedData]);

}
catch (error) {
console.log("error: ",error);
}
};
fetchData();
}, [data]);

但我收到"访问受限";消息。

最后,我认为这不是正确的方法。有人有类似的问题吗?

我找到解决办法了。

我看到设备,在多次尝试登录失败后,封锁IP几分钟,所以设备响应"访问受限"。

为了解决这个问题,我还添加了

params: { 
username: username,
password: password,
},

(有正确的用户名和密码)传递给fetch的参数如下:

const response = await fetch(`goip_get_status.html`, {
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Authorization': 'Basic ' + btoa(`${username}:${password}`)
}
params: { 
username: username,
password: password,
},
}