【问题标题】:HP ALM API query to form endpoint用于形成端点的 HP ALM API 查询
【发布时间】:2019-09-24 11:11:31
【问题描述】:

我正在尝试通过 ALM API 调用来获取响应。

URL: http://myalm.com:8080/qcbin/rest/domains/project/projects/produc/tests?fields=id,name,status&query={owner["myname"]}

我正在尝试提取 ID、名称和状态,并将查询作为 owner=myname 传递。

在调用 API 后,我遇到了下面提到的错误 -

java.lang.IllegalArgumentException:路径参数数量无效。预期为 1,为 0。未定义的路径参数为: 所有者[“我的名字”]

我在浏览器中发布了相同的网址,并在那里获取了正确的响应。 不知道如何在 API 调用中传递查询,任何帮助将不胜感激。

【问题讨论】:

    标签: rest api alm


    【解决方案1】:

    您需要在 URL 中编码特殊字符(逗号)(浏览器会自动为您编码)。 详情请见https://www.w3schools.com/tags/ref_urlencode.asp

    【讨论】:

    • 即使我尝试了编码,但没有用。似乎我们需要以不同的方式构建端点的 API。
    • 也许你可以发布你的代码,这样会更容易检查它是否有问题
    • 响应响应 = APIUtil.getCallWithHeaderParamCookies(headersGET,cookies, "SERVER:8080/qcbin/PATH**/PROD/tests?fields=id,name,status&query={owner[rajan]}");方法:public static Response getCallWithHeaderParamCookies(Map headers, Map cookies, String URL) { LoggerUtil.log("GET call on endpoint " + URL + " with headers " + headers.entrySet() ); return given().headers(headers).cookies(cookies).request().when().get(URL); }
    • 错误消息我得到“java.lang.IllegalArgumentException:路径参数的数量无效。预期为 1,为 0。未定义的路径参数为:所有者 [rajan]”。
    • 使用 java.net.URLEncoder.encode() 编码你的值,例如:"SERVER:8080/qcbin/PATH**/PROD/tests?fields="+encode("id,name,status")+"&query="+encode("{owner[rajan]}")
    【解决方案2】:

    这取决于您使用的 ALM 版本,当您打开 ALM 时,最好在帮助部分中检查这一点。在那里,您将看到查看 ALM 提供的所有其余 API 示例的选项。

    一般如下:-

    your_query = "defect_id=2330"
    your_fields = "id,name,status"
    
    Endpoint_url?query=your_query&fields=your_fields
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多