yapi get请求的请求头为空,设置了也无效

s4n0splo  于 2021-11-30  发布在  Java
关注(0)|答案(12)|浏览(652)

版本号

~ 1.8.1

什么问题

~ get请求的请求头为空,设置了也无效

如何复现此问题

~
任意新建一个get的接口,设置Content-Type,点击运行。在DevTools里查看Request Headers发现没有值。由于后端接口会校验Content-Type,导致接口调用失败。
尝试在请求配置里赋值,也不起作用

if (context.method == 'GET') {
    context.requestHeader['Content-Type'] = 'text/plain;charset=UTF-8';
}

什么浏览器

~ Chrome/76.0.3809.132

什么系统(Linux, Windows, macOS)

win10

hrirmatl

hrirmatl1#

后端接口的代码贴下,通过Postman等工具正常吗?

kx7yvsdv

kx7yvsdv2#

@wangchao523
后端是Spring MVC

@Controller
@RequestMapping(value={"/rest/xxx"}, consumes={"text/plain;charset=UTF-8", "application/*"})
public class Mobile {
    @RequestMapping(value={"/yyy" }, method=RequestMethod.GET, produces="text/plain;charset=UTF-8")
    public String yyy() throws BusinessException {

    }
}

用Postman时:
不设置Content-Type,也报错

设置了Content-Type后正常了

nzrxty8p

nzrxty8p3#

我在休假,节后可以帮你看。
这块yapi应该有特殊处理,文档上有写。https://hellosean1025.github.io/yapi/documents/api.html#%e6%8e%a5%e5%8f%a3%e9%85%8d%e7%bd%ae

你可以这么验证下:api中去掉consums限制,然后通过head获取对应的值,这样来看看yapi最后传的啥。

6yoyoihd

6yoyoihd4#

@wangchao523
感谢回复,去掉consums后用yapi可以正常调用接口,加断点发现yapi没有传Content-Type

从cross-request插件的网络请求里看也是没有传Content-Type

aydmsdu9

aydmsdu95#

@wangchao523
大佬休假完了吗,抽空帮忙跟踪下哈,感谢

z8dt9xmd

z8dt9xmd6#

header设置也没携带到后台 #651

vyswwuz2

vyswwuz28#

@wangchao523 能帮忙看下吗

yvt65v4c

yvt65v4c9#

@wangchao523 +1 这个问题怎么临时解决。。

63lcw9qa

63lcw9qa10#

我看插件的代码这里会执行delete操作,如果需要建议你们修改插件的js代码,具体逻辑也请自行查看插件源码。

在background.js中226行也有同样的代码。

bqf10yzr

bqf10yzr11#

感谢回复,但我找不到对应文件response.js和background.js 版本为master 1.8.6

1qczuiv0

1qczuiv012#

这个是在Chrome的插件里哈,插件目录参考:https://www.jianshu.com/p/c6448c0ed1d9
找到yapi的插件(cross-request)ID,进到对应的目录就可以看到

相关问题