electron爬虫—发送网络请求的工具类

一、简介

  众所周知浏览器对跨域的限制很大。electron作为一款桌面应用如果发送请求给不同的地址就会产生跨域。对于用electron做一些数据收集来说非常不方便。所以今天给大家带来一个我自己写的稳定的发送请求的工具类。

 

二、代码
  

复制代码
let http = {}
let {net} = require('electron').remote

// 发送post
http.post = async (path, parameter, host) => {
  let json = {
    method: 'POST',
    protocol: 'https:',
    hostname: host || 'fundmobapi.eastmoney.com',
    path: path,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  }
  let result = await send(json, parameter)
  return result
}
// 发送get
http.get = async (path, parameter, url) => {
  url = url || 'https://fundmobapi.eastmoney.com'
  let json = url + path + parameter
  let result = await send(json, null)
  return result
}
// 发送请求
async function send (json, parameter) {
  return new Promise((resolve, reject) => {
    // 请求体
    let request = net.request(json)
    // 回调
    request.on('response', (response) => {
      let result = ''
      response.on('data', (chunk) => {
        result += chunk.toString()
        try {
          var obj = JSON.parse(result)
          resolve(obj)
        } catch (e) {

        }
      })
      // response.on('end', () => {
        // console.log("数据接收完成");
      // })
    })
    request.on('error', () => {
      console.log("请求失败");
    })
    // 参数
    if (parameter) {
      request.write(parameter)
    }
    request.end()
  })
}
export {
  http
}
复制代码

 

 

posted @   mywink  阅读(1069)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示