从HTTP事件流Java中提取数据

时间:2017-05-02 15:24:46

标签: java http selenium server-side

我目前正在使用基于Selenium的自动化框架执行测试自动化。我目前正在发送HTTP请求以创建API套件。

但是,我需要发布的下一个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提取Amount值。 如果代码格式不是很好,请道歉。

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

作为我的框架的一个例子:

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

这会在请求中显示的URL中发布。但是,这并没有让我看到eventStream数据。

1 个答案:

答案 0 :(得分:0)

您可以使用google json库并运行这样的代码。



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




这是另一篇有更多信息的文章 How to parse JSON in Java