uniapp中plus.net.createhttprequest的使用方法

在uniapp中使用plus.net.createhttprequest时遇到一些问题,具体代码如下:

var httpRequest = plus.net.createhttprequest();
httpRequest.open('GET', 'https://example.com/api');
httpRequest.send();

但是请求总是失败,返回状态码为0。请问:

  1. 是否需要配置manifest.json中的权限?
  2. 在H5端和APP端的用法是否有区别?
  3. 有没有完整的示例代码可以参考?
  4. 出现状态码0一般是什么原因导致的?
2 回复

在UniApp中,使用plus.net.createHttpRequest创建HTTP请求对象。示例代码:

let request = plus.net.createHttpRequest();
request.open('GET', 'https://example.com/api/data');
request.onreadystatechange = function() {
    if (request.readyState == 4 && request.status == 200) {
        console.log(request.responseText);
    }
};
request.send();

支持GET/POST等方法,可设置请求头、超时等参数。


在 UniApp 中,plus.net.createHttpRequest 用于创建 HTTP 请求对象,支持 GET、POST 等请求方法。以下是基本使用方法:

1. 创建请求对象

const httpRequest = plus.net.createHttpRequest();

2. 配置请求参数

httpRequest.open('GET', 'https://api.example.com/data', true); // 异步请求
httpRequest.setRequestHeader('Content-Type', 'application/json');

3. 发送请求并处理响应

httpRequest.onreadystatechange = function () {
  if (httpRequest.readyState === 4) { // 请求完成
    if (httpRequest.status === 200) {
      console.log('响应数据:', httpRequest.responseText);
    } else {
      console.error('请求失败:', httpRequest.status);
    }
  }
};
httpRequest.send(); // GET 请求无需参数,POST 可传数据

完整示例(POST 请求)

const request = plus.net.createHttpRequest();
request.open('POST', 'https://api.example.com/submit');
request.setRequestHeader('Content-Type', 'application/json');

request.onreadystatechange = function () {
  if (request.readyState === 4) {
    if (request.status === 200) {
      uni.showToast({ title: '提交成功', icon: 'success' });
    } else {
      uni.showToast({ title: '提交失败', icon: 'error' });
    }
  }
};

const data = { key: 'value' };
request.send(JSON.stringify(data));

注意事项:

  • 跨域问题:确保目标服务器允许跨域请求。
  • 异步处理:建议使用异步模式(open 的第三个参数为 true)。
  • 错误处理:通过 status 检查 HTTP 状态码,处理网络异常。

此方法适用于需要精细控制请求的场景,简单请求推荐使用 UniApp 封装的 uni.request

回到顶部