public void connect() {
		// Step 0 : Build URL
		int step = 0;
		long t0 = System.currentTimeMillis();
		if (debug) Gpr.debug("Connect Step = " + step);
		try {
			URL url = buildUrl();

			// Step 1: Open connection
			step = 1;
			if (debug) Gpr.debug("Connect Step = " + step);
			URLConnection httpConnection = url.openConnection();

			// Step 2: Set parameters
			step = 2;
			if (debug) Gpr.debug("Connect Step = " + step);
			httpConnection.setConnectTimeout(HTTP_CONNECT_TIMEOUT_MSECS);
			httpConnection.setReadTimeout(HTTP_READ_TIMEOUT_MSECS);

			// Step 3: Connect to server
			step = 3;
			if (debug) Gpr.debug("Connect Step = " + step);

			// Step 4: Parse results (nothing done here)
			//			step = 4;
			//			String responseStr = Gpr.read(httpConnection.getInputStream());
			//			parseResponse(responseStr);

			res = RequestResult.OK;
		} catch (Exception e) {
			msg.append(step > 3 ? "Bad response" : "Error in connection. ").append(" Step " + step).append("(").append(e.toString()).append(")");
			res = RequestResult.ERROR;
		} finally {
			duration = System.currentTimeMillis() - t0;
			if (debug && !res.completed()) Gpr.debug("Error in connection: " + res + " step=" + step + " duration(msecs)=" + duration + " " + msg);
		}

		if (debug) Gpr.debug("Connect done!");
	}