收藏
回答

云函数可以做http请求吗?

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小游戏 需求 工具 wx8888e6cf48888ce&secret 2.3.0

用wx.login获取openid需要到服务器交换一次


如果云开发的云函数可以做http请求,那就非常完美了。


试了一下,发现不行。


想问一下官方的大神,是原本就不行,还是我人品不够好?


代码如下:


// 云函数入口函数

exports.main = async (event, context) => {

request({

url: 'test.php',

header: {

'content-type': 'application/json' // 默认值

},

method: 'GET',

dataType: 'json',

responseType: 'text',

success: function(res) {

console.log(res)

},

fail: function(res) {

console.log(res);

},

complete: function(res) {}

})

}


之前是些wx.request,错误提示说wx未定义。


然后改成request,说request未定义


在云函数内测试,结果如下


返回结果:

{"errorCode":10004,"errorMessage":"user code exception caught","stackTrace":"ReferenceError: request is not defined\n    at EventHandler.exports.main [as realHandler] (/var/user/index.js:8:3)\n    at EventHandler.handle (/var/runtime/node8/bootstrap.js:238:34)\n    at invoke (/var/runtime/node8/bootstrap.js:111:22)\n    at Timeout.setTimeout [as _onTimeout] (/var/runtime/node8/bootstrap.js:61:9)\n    at ontimeout (timers.js:475:11)\n    at tryOnTimeout (timers.js:310:5)\n    at Timer.listOnTimeout (timers.js:270:5)"}


那也就是说:


除了在文档内列出的,小程序端api和服务端api外,其他的都不能在云函数执行是吗?



最后一次编辑于  2018-09-21  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

6 个回答

  • 张吉(jimmyjzhang)
    张吉(jimmyjzhang)
    2018-09-21

    云函数内访问外部接口是支持的。


    request应用使用npm的request库,外部接口不需要使用SDK

    2018-09-21
    赞同 33
    回复 2
    • 左手
      左手
      2018-09-23

      小哥哥


      你的意思是,要用nodejs的写法吗?


      比如这样子:


      request('您的请求url', function (error, response, body) {  if (!error && response.statusCode == 200) {    console.log(body) // 请求成功的处理逻辑  } });

      2018-09-23
      赞同
      回复
    • 左手
      左手
      2018-09-23

      我试了一下,还是说request未定义吖~~~



      2018-09-23
      赞同
      回复
  • 左手
    左手
    2018-09-23

    哎呀


    可以了


    我一直没转过弯


    原来是要加上request的申明


    搞定了,谢谢小哥哥哈哈。


    var request = require('request');


    加上这句,用小程序api里面的request,或者nodejs的,都可以。

    2018-09-23
    赞同
    回复 2
    • Mr.Hu
      Mr.Hu
      2018-10-03

      楼主怎么搞的,我也是出现那个情况啊

      2018-10-03
      赞同
      回复
    • 左手
      左手
      02-20回复Mr.Hu

      就是在加上var request = require('request');


      就可以了.

      02-20
      赞同
      回复