Skip to content

request help: Request header modification sometimes does not take effect in ext-plugin-pre-req #155

@zxyao145

Description

@zxyao145

Issue description

The client uses Content-Type:application/x-www-form-urlencoded to access the HTTP API. After decrypting the body to json, I reset the request header by r.Header().Set("Content-Type", "application/json;charset=UTF-8"), but found that it sometimes does not work.

I have attempted to request 100 times, but there are 9 cases where it does not take effect

the code of plugin:

r.Header().Set("Content-Type", "application/json;charset=UTF-8")
r.SetBody(origBodyByte)

// pluginLogger is a wrapper for log that can output traceId
pluginLogger.Infof("request get Content-Type: %s", r.Header().Get("Content-Type"))

the log of the plugin:

2024/01/09 20:15:00 [warn] 302#302: *913 [lua] init.lua:961: 2024-01-09T20:15:00.941+0800       INFO    pluginlogger/logger.go:34       
 [00-3334f5bcb64c9c9cdf0da1997a9a81b6-5ff503ca821603ae-01] request get Content-Type: application/json;charset=UTF-8

the log of http api:

2024-01-09 20:15:00.946 [3334f5bcb64c9c9cdf0da1997a9a81b6]  [ http-nio-5001-exec-7:17758181 ] - [ DEBUG ]- [ org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor ]  Read "application/x-www-form-urlencoded;charset=UTF-8" to ["**********"]

2024-01-09 20:15:00.946 [3334f5bcb64c9c9cdf0da1997a9a81b6]  [ http-nio-5001-exec-7:17758181 ] - [ DEBUG ]- [ com.xxxx.controller.TestController ]  Content-Type:application/x-www-form-urlencoded

Is there anyone who can help explain the reason?

Environment

  • APISIX Go Plugin Runner's version:
    github.com/apache/apisix-go-plugin-runner v0.5.1-0.20231128010119-a265bcd63ca1
  • APISIX version: 3.6.0
  • Go version: 1.19
  • OS (cmd: uname -a): debian:bullseye-slim

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions