import "Map" as Map import "Vector" import "Logging" as LOGGER importJava "javax.ws.rs.client.Invocation" where data Invocation @JavaName invoke invoke_ :: Invocation -> Class a -> a invoke :: VecComp a => Invocation -> a invoke invocation = invoke_ invocation classObject importJava "javax.ws.rs.client.Invocation$Builder" where data Builder header :: Builder -> String -> String -> Builder accept :: Builder -> Vector String -> Builder cookie :: Builder -> String -> String -> Builder build :: Builder -> String -> Invocation importJava "javax.ws.rs.client.WebTarget" where data WebTarget path :: WebTarget -> String -> WebTarget queryParam :: WebTarget -> String -> Vector String -> WebTarget request :: WebTarget -> Vector String -> Builder importJava "javax.ws.rs.client.ClientBuilder" where data ClientBuilder @JavaName newBuilder clientBuilder :: ClientBuilder @JavaName build buildClient :: ClientBuilder -> Client importJava "javax.ws.rs.client.Client" where data Client target :: Client -> String -> WebTarget close :: Client -> () getTextHtmlExample :: String -> Map.T String a -> String getTextHtmlExample uri queryParams = do httpClient = buildClient clientBuilder webTarget = target httpClient uri req = request webTarget (vector ["text/html"]) invocation = build req "GET" res = invoke invocation close httpClient res