当前位置: 首页 > 知识库问答 >
问题:

如何从空手道向Java API传递响应值

陈季
2023-03-14

我如何将值从空手道API传递到Java类?

正如文档中提到的,我使用了以下代码段从Java API获取响应。但它返回带有未格式化的JSON内容的响应。

Map<String, Object> result = CucumberRunner.runClasspathFeature("demo/java/from-java.feature", args, true);

然后,我使用以下脚本打印响应。

for(Map.Entry<String , Object> entry: getMbrWksMembershipDetailsResponse.entrySet())
{
    if (entry.getKey().equalsIgnoreCase("response"))
    {
        System.out.println(entry.getValue());
    }
}
{soap:Envelope={_={soap:Body={ns1:getMbrWksMembershipDetailsResponse={_={ns4:WksMembershipSummaryResponse={_={ns2:customerSummary={ns2:address={ns2:city=SOUTH CHESTERFIELD, ns2:country=USA, ns2:isoCountryCode=US, ns2:line1=9998, N. MICHIGAN ROAD., ns2:postalCode=23834, ns2:state=VA}, ns2:allowPasswordChange=true, ns2:arpMember=false, ns2:brandCode=RCI, ns2:brandId=1, ns2:companyCode=RCI, ns2:eliteMemberRewardStatus=false, ns2:eliteRewardStatus=true, ns2:europePointsClubMember=false, ns2:firstName=FRANK, ns2:homePhone=804/733-3004, ns2:isoCurrencyCode=USD, ns2:isoLanguageCode=EN, ns2:language=EN, ns2:lastName=BROWNING B, ns2:locale=en_US, ns2:memberDeveloperRenewed=false, ns2:memberEnrolledDate=2009-10-26T00:00:00-04:00, ns2:memberEnrolledForDirectDebit=false, ns2:memberEnrolledForPltDirectDebit=false, ns2:memberStatus=A, ns2:middleName=B, ns2:msgTranslationLanguageCode=EN, ns2:officePhone=0/-0, ns2:pointsCurrencyCode=0......

多谢了。

共有1个答案

赵炯
2023-03-14

是的,XML在内部是作为一种奇怪的map结构保存的,请参阅类型转换一节以了解更多信息。

你有一个简单的方法来做到这一点。只需定义一个转换为字符串的response新变量。

* xmlstring responseXml = response

之后,您只需要从Java API返回的map中获取responseML,它将是一个字符串。

 类似资料:
  • 我用空手道0.9。5.我正在测试一个返回125MB json响应的endpoint(我知道,不应该在json上这样做——但我现在还停留在这里)。我怎样才能禁止空手道解析响应json,而只是将其视为纯文本?响应需要几毫秒才能完成,但空手道只是挂起尝试解析响应。我不需要验证响应,只需检查200 OK。 谢谢

  • 假设我有一个需求完全相同的测试场景,但有一个路径变量更改,如下所示: 方案:某些方案

  • 下面是我在点击特定Web服务时收到的JSON响应: 我不知道哪个索引有我的期望值(我需要在确定哪个具有)后验证多个值),这是动态的。不希望使用硬编码值。并匹配,因为这将在下次更改。 对此我有两个问题: 如何将响应传递给java代码并获取具有的数组索引,以便使用此索引进行验证? 下面的代码不起作用。

  • 问题内容: 我可以选择该项目并在Webdriver上检索信息。但是我不知道如何将响应URL传递给crawlspider。 所以这就是我被困住的地方。我能够使用上面的代码进行查询。但是,如何将resp_for_scrapy传递给crawlspider?我把resp_for_scrapy代替了item,但这没用。 任何建议将不胜感激!!!! 编辑我包括一个中间件类,可从Spider类之前的下拉列表中进

  • 我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?

  • 我试图验证非json格式的错误响应体。我尝试了使用模式以及使用包含匹配的关键字。这对我不起作用。 在post调用中观察到多个匹配时从API返回的实际响应: 我的空手道特点: 尝试*匹配实际的[0] == '#(^partSchema)'也从https://gist.github.com/ptrthomas/2a1e30bcb4d782279019b3d5c10b3ed1。不工作