HarmonyOS 鸿蒙Next http request调用后无任何返回
HarmonyOS 鸿蒙Next http request调用后无任何返回
偶发调用http.createHttp().request后,在then中没有任何返回
- 代码调用http.createHttp().request,
- 服务端显示请求已到且已返回给客户端,但客户端代码始终没有走到then中
- 如代码片段中所示,抓取到的系统日志里,既没有response url 这一行的日志,也没有request err这一行的日志
return new Promise((resolve, reject) => {
httpRequest.request(url, option)
.then((response) => {
Logger.debug(TAG, "response url : " + url + ", response : " + JSON.stringify(response));
if (response.responseCode == http.ResponseCode.OK) {
resolve(response);
} else {
if (response.result != null && (response.responseCode == 401 || response.responseCode == 400)) {
let body: Record<string, string> = {};
try {
body = JSON.parse(response.result as string)
if (body != null && (body.errCode == "0x9007" || body.errCode == "0x9006")) {
resolve(this.getNewTicket()
.then(ticket => {
return this.doRequest(ticket, url, requestOption, requestType);
}))
} else {
reject({ code: response.responseCode, data: response, message: body.message });
}
} catch (e) {
Logger.error(TAG, "JSON.parse err : " + e + ", message : " + JSON.stringify(response.result));
reject({ code: response.responseCode, data: response });
}
} else {
reject({ code: response.responseCode, data: response });
}
}
})
.catch((err: BusinessError) => {
this.promptHttpErr(err.code)
Logger.error(TAG, "request err : " + url + ", message : " + JSON.stringify(err));
reject({ code: JSON.parse(JSON.stringify(err)).code as number, data: null });
})
.finally(() => {
httpRequest.destroy();
})
})
更多关于HarmonyOS 鸿蒙Next http request调用后无任何返回的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可能是 request
接口 的用法问题,麻烦看一下 requestInStream
接口能否满足,具体接口开发步骤可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/http-request-V5#requestinstream
更多关于HarmonyOS 鸿蒙Next http request调用后无任何返回的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对“HarmonyOS 鸿蒙Next http request调用后无任何返回”的问题,以下提供可能的解决方案:
在HarmonyOS系统中进行HTTP请求时,如果调用后无任何返回,可能是由多种原因导致的。首先,检查网络状态是否良好,确保设备已连接到互联网或指定的网络。其次,验证HTTP请求的URL是否正确,以及服务器是否在线并能正常响应请求。
此外,还需检查HTTP请求的方法(如GET、POST等)和请求头信息是否设置正确。错误的请求方法或缺失的请求头可能导致服务器无法正确解析请求,从而不返回任何响应。
同时,确认代码中是否已正确处理HTTP请求的异步性。在HarmonyOS中,HTTP请求通常是异步执行的,需要设置回调函数来接收服务器的响应。如果回调函数未正确设置或存在逻辑错误,也可能导致无法接收到响应。
最后,检查应用的权限设置,确保应用已获取到进行网络请求所需的权限。
如果以上步骤均无法解决问题,可能是由更复杂的网络问题或系统bug导致的。此时,建议直接联系鸿蒙系统的官方客服,提供详细的错误信息和日志,以便他们进行进一步的排查和解决。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。