Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • N node-http-proxy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 482
    • Issues 482
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 102
    • Merge requests 102
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • http ... PARTY!
  • node-http-proxy
  • Issues
  • #1630
Closed
Open
Issue created Mar 11, 2023 by Light_Sun@FALLANGELZOU

if the proxyRes with bad statusCode, how can i retry the proxyRequest.

I want to automatically bring the token when the statusCode is 401 and re-request。 for example:

onResponseInterceptor: (proxyRes, req, res, retry) => {
        if (proxyRes.statusCode == 401) {
            retry()
        }
}

and the retry function is defined by:

  this.proxy.on("proxyRes", (proxyRes, req, res) => {
      console.log(req.headers);
      const retry = async () => {
          await this.option.beforeRetry?.(proxyRes, req, res)
          const retry = (req.headers['x-retry'] || '0') as string;
          req.headers["x-retry"] = (Number(retry) + 1).toString()
          this.proxy.web(req, res,{
              target: this.option.target,
              changeOrigin: true,
              selfHandleResponse: true
          })
      }
      this.option.onResponseInterceptor?.(proxyRes, req, res, retry)
  })

I tried to re-launch proxy.web() in proxy.on("proxyRes"). But this doesn't work and no second response is received. How do I solve this problem?

Assignee
Assign to
Time tracking