HarmonyOS 鸿蒙Next JS API网络请求,HTTPS协议网络请求成功但没获得网页数据

HarmonyOS 鸿蒙Next JS API网络请求,HTTPS协议网络请求成功但没获得网页数据 使用HTTPS访问没有问题,能访问例如百度“https://www.baidu.com/”,但log窗口输出信息没有网页数据

log窗口信息

08-28 17:14:53.682 8258-15964/com.example.baidu I 03B00/JSApp: app Log: ##Result:<!DOCTYPE html>

08-28 17:14:53.682 8258-15964/com.example.baidu I 03B00/JSApp: app Log: ##code:200

08-28 17:14:53.682 8258-15964/com.example.baidu I 03B00/JSApp: app Log: ##cookies:undefined

按理来说访问成功log窗口里应该会输出网页源码,但是没有

1.JS文件

import http from '@ohos.net.http';
export default {
    data: {
        title: ""
    },
    onInit() {
        this.title = this.$t('strings.world');
    },
    httprequest()
    {
        let httpRequest = http.createHttp();
        // 用于订阅http响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
        // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback). 8+
        httpRequest.on('headersReceive', (header) => {
//            console.info('header: ' + JSON.stringify(header));
        });
        httpRequest.request(
            // 填写http请求的url地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
            "https://www.baidu.com/",
            {
                method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET
                // 开发者根据自身业务需要添加header字段
//                header: {
//                    'Content-Type': 'application/json'
//                },
                // 当使用POST请求时此字段用于传递内容
//                extraData: {
//                    "data": "data to send",
//                },
                connectTimeout: 60000, // 可选,默认为60s
                readTimeout: 60000, // 可选,默认为60s
            }, (err, data) => {
            if (!err) {
                // data.result为http响应内容,可根据业务需要进行解析
                console.info('##Result:' + data.result);
                console.info('##code:' + data.responseCode);
                // data.header为http响应头,可根据业务需要进行解析
//                console.info('##header:' + JSON.stringify(data.header));
                console.info('##cookies:' + data.cookies); // 8+
            } else {
                console.info('##error:' + JSON.stringify(err));
                // 当该请求使用完毕时,调用destroy方法主动销毁。
                httpRequest.destroy();
            }
        }
        );
    }
}

2.hml文件

<div class="container">
    <button class = "button"  on:click="httprequest">访问</button>
</div>

更多关于HarmonyOS 鸿蒙Next JS API网络请求,HTTPS协议网络请求成功但没获得网页数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
console.log无法显示文本过长,建议使用Text进行显示在界面上

更多关于HarmonyOS 鸿蒙Next JS API网络请求,HTTPS协议网络请求成功但没获得网页数据的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者您好,http网络请求使用可以参考以下链接:https://gitee.com/openharmony/app_samples/tree/master/Network/Http

针对“HarmonyOS 鸿蒙Next JS API网络请求,HTTPS协议网络请求成功但没获得网页数据”的问题,以下是专业回答:

在HarmonyOS中使用Next JS API进行HTTPS协议的网络请求时,若请求成功但未获得网页数据,可能的原因及排查方向如下:

  1. 响应内容为空:检查服务器是否确实返回了数据。有时服务器可能由于各种原因(如权限问题、数据为空等)返回空响应。

  2. 编码问题:确认接收到的数据编码格式与预期一致。如果编码不匹配,可能导致数据解析错误或显示为乱码。

  3. 数据解析错误:检查Next JS API中用于解析响应数据的代码是否正确。例如,如果预期返回的是JSON格式数据,确保使用正确的JSON解析方法。

  4. 网络问题:虽然请求成功,但可能在数据传输过程中存在丢包或数据损坏的情况。可以尝试重新发送请求以验证是否为偶发性问题。

  5. 服务器配置:确认服务器是否配置了正确的HTTPS证书和相关的安全策略,这些可能会影响数据的传输和接收。

如果以上排查方向均未能解决问题,请检查API文档或相关开发资料,确保使用的方法和参数均正确无误。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部