private JSONObject parseResponse(final String query) throws NameResolverException {
    assert query != null;
    LOG.log(Level.INFO, "Call IAS name resolver: {0}", query);
    final ClientResourceProxy proxy = new ClientResourceProxy(query, Method.GET);
    final ClientResource client = proxy.getClientResource();
    //client.setChallengeResponse(new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "guest", "sitools2public"));
    final Client clientHTTP = new Client(Protocol.HTTP);
    clientHTTP.setConnectTimeout(AbstractNameResolver.SERVER_TIMEOUT);
    client.setNext(clientHTTP);
    final Status status = client.getStatus();
    if (status.isSuccess()) {
      JSONObject json;
      try {
        json = new JSONObject(client.get().getText());
      } catch (IOException ex) {
        throw new NameResolverException(Status.SERVER_ERROR_INTERNAL, ex);
      } catch (JSONException ex) {
        LOG.log(Level.WARNING, "the response of Corot server may changed");
        throw new NameResolverException(Status.CLIENT_ERROR_NOT_ACCEPTABLE, ex);
      } catch (ResourceException ex) {
        throw new NameResolverException(Status.SERVER_ERROR_SERVICE_UNAVAILABLE, ex);
      }
      return json;
    } else {
      throw new NameResolverException(status, status.getThrowable());
    }
  }