我正在测试我创建的函数调用
names = name_list.join(",")
this._http.get(URL, {params:{ names }}).subscribe( results => information = results; );
看起来不错。它说,当使用Connexion或Python-Swagger时,项目数组是以逗号分隔的。在查看示例时,它正在对属性名称进行uri编码。这将逗号转换为:%2C
我注意到的问题是,在执行此操作时,它看起来是正确的,但在监视网络请求时,它实际上执行了:%252C
我在url上运行了encodeURI以查看它的外观,瞧,我想我找到了问题所在。我考虑的唯一问题可能是我的这个请求的拦截器,除非get-httpClient正在执行此操作
这不能作为逗号使用,因为它encodeURI将不使用逗号,但第二次使用encodeURIComponent对其进行编码时,它将再次对其进行编码
这个拦截器是:
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let _customID = 42,
_customToken = "HelloWorld";
request = request.clone({
setParams: {
id : _customID,
token: _customToken
}
});
return next.handle(request)
}
我使用curl测试端点,以确认秘密完成的encodeURI
是罪魁祸首,并且使用匹配的字符串,我认为情况就是这样
首先,克隆功能是否可以做到这一点?如果是,有没有办法抑制它。我怎样才能避开它
根据swagger的说法,属性似乎在每个数组项之间寻找%2C
使用的yaml脚本如下所示:
/devices/list
get:
tags: [Devices]
operationId: app.devices_list_get
summary:Get a list of devices based on a list of names
parameters:
- $ref: '#/parameteres/id'
- $ref: '#/parameteres/id'
- $ref: '#/parameteres/names'
responses:
200:
description: An array of devices.
schema:
- $ref: '#/definitions/Devices'
parameters:
names:
in: query
name: names
required: true
type: array
items:
type: string
description: a list of device names to look up.
我不想假设招摇/连接的定义是错误的。但是,因为我可以卷曲请求,所以我可以确定它是否按照定义工作,并相信问题与Angular Typescript中处理的底层HttpRequest有关
目前没有回答
相关问题 更多 >
编程相关推荐