2017-05-02 85 views
1

我目前正在使用基于Selenium的自动化框架执行测试自动化。我目前正在发送HTTP请求以创建一个API套件。从HTTP事件流提取数据Java

但是,我需要发布的下一个URL是文本/事件流的一部分。 我需要提取的数据在eventStream本身内。

a["{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{\"VirgoSessionToken\":\"8C7A0FAA-EA27-473A-BCC3-E568ABDBD403\",\"Localization\":{\"LocaleString\":\"en_UK\",\"LanguageTag\":\"en-UK\",\"DecimalSeparator\":\".\",\"ZeroDigit\":\"0\",\"ThousandsSeparator\":\",\",\"CurrencySymbolLocation\":\"PREFIX\"},\"Balance\":{\"Timestamp\":1493730819967,\"Banks\":{\"CREDIT\":{\"Amount\":83872,\"CurrencyCode\":\"GBP\",\"MinorCurrencyUnits\":2,\"CurrencySymbol\":\"GBP\"},\"WINNINGS\":{\"Amount\":0,\"CurrencyCode\":\"GBP\",\"MinorCurrencyUnits\":2,\"CurrencySymbol\":\"GBP\"}}},\"Preferences\":{\"Global\":{},\"Game\":{}},\"State\":{\"value\":\"{\\\"serverState\\\":{\\\"player\\\":{\\\"uniqueVirgoId\\\":\\\"f85551d0-2f36-11e7-9136-314c3f96f318\\\",\\\"playerBindingState\\\":{\\\"20\\\":0,\\\"40\\\":0,\\\"60\\\":0,\\\"80\\\":0,\\\"100\\\":0,\\\"200\\\":0,\\\"400\\\":0,\\\"600\\\":0,\\\"800\\\":0,\\\"1000\\\":0,\\\"2000\\\":0,\\\"4000\\\":0,\\\"6000\\\":0,\\\"8000\\\":0,\\\"10000\\\":0},\\\"populated\\\":true},\\\"game\\\":{\\\"currencyCode\\\":\\\"\\\"}},\\\"jackpotState\\\":{}}\"},\"ApiPhase\":\"Idle\"}}"] 

我需要使用Java提取金额值。 道歉,如果代码格式不是很好。

是否有从EventStreams中提取数据的最佳方法?

由于我的框架做什么的例子:

String webSocketUrl = insHostedUrl + responseTitle + "/xc_yx4r_" + "/eventsource"; 
assertTrue(httpCreateRequest("post", webSocketUrl); 
assertTrue(httpSendRequest()); 
response = httpGetResponse(); 

这个职位是在可见的请求的URL。然而,这并没有让我到eventStream数据。

+0

哪里码? – freedev

+0

问题中列出了实际的数据代码。该项目的代码本身不作为内部自动化框架发布。我只是发布,看看是否有任何通用的Java方法可以提取这个,因为框架没有那么深。 – mvoase

+0

我所看到的仅仅是一个很大的Json字符串(里面有一个嵌套的Json字符串)。 – freedev

回答

0

您可以使用google json库并运行如下代码。

JsonObject jsonObject = new 
 
JsonParser().parse({\"Amount\":0}").getAsJsonObject(); 
 
System.out.println(jsonObject.get("Amount").getAsString());

这是另一篇文章中有详细信息 How to parse JSON in Java

+0

感谢您的回应..其实际获得数据本身多数民众赞成的问题。感谢你添加这个,因为一旦我到达那里,它将会有所帮助,但是JSON并没有在请求本身的响应主体中给出。只在服务器端的eventStream中。 – mvoase