2017-04-11 57 views
1

我正在使用REST-Assured库,并且在访问下面的JSON响应中的特定键freshdeskId时遇到了一个非常奇怪的问题,这是一个Response对象在我的代码中。REST保证 - 无法访问JSON响应中的特定键

{ 
    "status": true, 
    "responseData": { 
     "orderId": "553259", 
     "orderItemName": "None", 
     "userId": "636049", 
     "freshdeskId": "#155", 
     "orderItemId": null, 
     "updatedOn": 1491824018000, 
     "message": "OK" 
    } 
} 

我能够访问其他领域,如orderIduserIdupdatedOn等使用response.path("responseData.orderId")(或类似),但response.path("responseData.freshdeskId")返回一个空字符串,而它预计将返回“#155”的价值。

+0

你看看你的网络标签的响应JSON本身?服务器可能会向您发送一个空字符串。 –

+0

@JoshuaJWilborn感谢您的快速回复。我尝试转储'response.asString()'的输出,发现'freshdeskId'字段确实有一个空字符串(“”)。但是如果我从邮差中找到相同的API,我会得到一个合适的字符串值(“#155”)。这看起来很奇怪。 –

回答

0

得到了这个问题的根本原因,原来这是一个服务器端的问题,因为它自从所需的相同从别的地方拿来异步没有为freshdeskId属性发送的值。

因此,作为一种解决方案,我在测试中添加了等待60秒,生成response。在此期间,后端更新的值为freshdeskId