Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 无法为空手道中的Odata URL指定圆括号_Api_Odata_Karate - Fatal编程技术网

Api 无法为空手道中的Odata URL指定圆括号

Api 无法为空手道中的Odata URL指定圆括号,api,odata,karate,Api,Odata,Karate,我正在尝试用空手道为ODataURL创建路径。 路径看起来像:”/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results' 似乎空手道无法读取圆括号()和“”等特殊字符。在圆括号开始之前,它在opu/odata/srt/ZQ_SRV/ZQ_BI_Q001之后剪切url。url(OPT_1='0013076036',OPT_To='0013076036')/Result的其余部分看起来像一个文本

我正在尝试用空手道为ODataURL创建路径。 路径看起来像:
”/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results'

似乎空手道无法读取圆括号()和“”等特殊字符。在圆括号开始之前,它在opu/odata/srt/ZQ_SRV/ZQ_BI_Q001之后剪切url。url
(OPT_1='0013076036',OPT_To='0013076036')/Result的其余部分看起来像一个文本

我曾尝试将%28用于(29%用于)和%27用于“但没有帮助”

另外,在邮递员中运行相同的url时,呼叫成功

运行测试url:

Background:
    * url "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
  Scenario: test check
    * method get

尝试完全手动构建
url
,不要使用
param
path

* url "http://myhost/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
如果仍然不起作用,则可能是您的服务器没有正确处理编码的URL-s,这可能是一个错误:

编辑:只需试着用这两行来证明空手道没有错/或者看看这个更简单的例子:

结果是:

Running com.intuit.karate.junit4.dev.TestRunner
23:11:06.404 [main] DEBUG com.intuit.karate - request:
1 > GET https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Host: httpbin.org
1 > User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_231)

23:11:08.154 [main] DEBUG com.intuit.karate - response time in milliseconds: 1745.46
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Origin: *
1 < Connection: keep-alive
1 < Content-Type: application/json
1 < Date: Wed, 22 Jan 2020 17:41:07 GMT
1 < Referrer-Policy: no-referrer-when-downgrade
1 < Server: nginx
1 < X-Content-Type-Options: nosniff
1 < X-Frame-Options: DENY
1 < X-XSS-Protection: 1; mode=block
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept-Encoding": "gzip,deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "Apache-HttpClient/4.5.5 (Java/1.8.0_231)"
  }, 
  "json": null, 
  "method": "GET", 
  "origin": "49.206.14.183, 49.206.14.183", 
  "url": "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
}
运行com.intuit.karate.junit4.dev.TestRunner
23:11:06.404[main]调试com.intuit.karate-请求:
1>获取https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(选择1='0013076036',选择至='0013076036')/结果
1>接受编码:gzip,deflate
1>连接:保持活动状态
1>主机:httpbin.org
1>用户代理:Apache HttpClient/4.5.5(Java/1.8.0_231)
23:11:08.154[main]DEBUG com.intuit.karate-响应时间(毫秒):1745.46
1 < 200
1<访问控制允许凭据:true
1<访问控制允许原点:*
1<连接:保持活动
1<内容类型:应用程序/json
1<日期:2020年1月22日星期三17:41:07 GMT
1<推荐人政策:降级时无推荐人
1<服务器:nginx
1
解决问题的方法是将
*方法get
替换为方法get时的


然后状态200

不,它没有帮助,url之前中断(.奇怪,因为同一个url调用在Postman中成功。似乎空手道无法正确读取url。有什么想法吗?@Y_Sh然后使用Postman:P-但说真的,请查看我对答案的编辑嘿@Peter Thomas,我已经运行了你的测试,它变为绿色,但控制台中的url看起来没有链接。在描述中添加了带有测试的屏幕截图。你的e使用*method get。我的代码看起来像method get然后status 200。当用我的代码调用您的测试url时,它抛出了错误。@Y\u Sh我没有任何要添加的内容。“unglued”是正常的,您的IDE可能检测不到url(因为它是一个设计糟糕的API IMO)-如果需要,请遵循以下说明:我可以确认这不是正确答案:)当method GET
*method GET
之间没有区别,我不知道,但是*method GET确实解决了这个问题,这就是为什么我发布了答案我碰巧创造了空手道,所以我必须确保你的答案不会误导和浪费别人的时间。在没有看到你所有的代码的情况下,我们无法说出你的答案我解决了问题。这就是我要求遵循流程的原因:
Running com.intuit.karate.junit4.dev.TestRunner
23:11:06.404 [main] DEBUG com.intuit.karate - request:
1 > GET https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Host: httpbin.org
1 > User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_231)

23:11:08.154 [main] DEBUG com.intuit.karate - response time in milliseconds: 1745.46
1 < 200
1 < Access-Control-Allow-Credentials: true
1 < Access-Control-Allow-Origin: *
1 < Connection: keep-alive
1 < Content-Type: application/json
1 < Date: Wed, 22 Jan 2020 17:41:07 GMT
1 < Referrer-Policy: no-referrer-when-downgrade
1 < Server: nginx
1 < X-Content-Type-Options: nosniff
1 < X-Frame-Options: DENY
1 < X-XSS-Protection: 1; mode=block
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept-Encoding": "gzip,deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "Apache-HttpClient/4.5.5 (Java/1.8.0_231)"
  }, 
  "json": null, 
  "method": "GET", 
  "origin": "49.206.14.183, 49.206.14.183", 
  "url": "https://httpbin.org/anything/opu/odata/srt/ZQ_SRV/ZQ_BI_Q001(OPT_1='0013076036',OPT_To='0013076036')/Results"
}