public void login(String username, String password) throws Exception { initHttpClient(); NameValue[] httpHeader = getHttpHeaders(); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("userId", username)); nvps.add(new BasicNameValuePair("userPassword", password)); log.debug("Making SOMFY http login call"); UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(nvps); ByteArrayOutputStream bos = new ByteArrayOutputStream(); urlEncodedFormEntity.writeTo(bos); String body = bos.toString(); String response = httpClient.doHttpRequest(BASE_URL + "json/login",HttpPost.METHOD_NAME, "application/x-www-form-urlencoded", body,httpHeader); log.debug("Somfy login response <<<" + response + ">>>"); }
List nameValuePairs = new ArrayList(3); nameValuePairs.add(new BasicNameValuePair("Param1", value1)); nameValuePairs.add(new BasicNameValuePair("Param2", value2)); nameValuePairs.add(new BasicNameValuePair("Param3", value3)); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(nameValuePairs); OutputStream post = request.getOutputStream(); entity.writeTo(post); post.flush();
@Override public JsonObject getAccessToken(final String authCode, final URI redirectUri) throws IOException { // FIXME: switch to HttpClient implementation: better performance and connection caching final URL url = new URL(getTokenUri()); final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("POST"); urlConnection.setRequestProperty(HttpHeaders.CONTENT_TYPE, URLEncodedUtils.CONTENT_TYPE); final List<NameValuePair> parameters = new ArrayList<NameValuePair>(); parameters.add(new BasicNameValuePair("grant_type", "authorization_code")); parameters.add(new BasicNameValuePair("code", authCode)); parameters.add(new BasicNameValuePair("client_id", getClientId())); final String clientSecret = getClientSecret(); if (clientSecret != null && !clientSecret.isEmpty()) { parameters.add(new BasicNameValuePair("client_secret", clientSecret)); } parameters.add(new BasicNameValuePair("redirect_uri", redirectUri.toString())); final UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters); // Send post request urlConnection.setDoOutput(true); try (final OutputStream outputStream = urlConnection.getOutputStream()) { entity.writeTo(outputStream); } // parse result final JsonObject jsonObject; try (final InputStream stream = urlConnection.getInputStream()) { jsonObject = Json.createReader(stream).readObject(); } return jsonObject; }
@Override public JsonObject getAccessToken(final String authCode, final URI redirectUri) throws IOException { // FIXME: switch to HttpClient implementation: better performance and connection caching final URL url = new URL(getTokenUri()); final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("POST"); urlConnection.setRequestProperty(HttpHeaders.CONTENT_TYPE, URLEncodedUtils.CONTENT_TYPE); final List<NameValuePair> parameters = new ArrayList<NameValuePair>(); parameters.add(new BasicNameValuePair("grant_type", "authorization_code")); parameters.add(new BasicNameValuePair("code", authCode)); parameters.add(new BasicNameValuePair("client_id", getClientId())); final String clientSecret = getClientSecret(); if (clientSecret != null && !clientSecret.isEmpty()) { parameters.add(new BasicNameValuePair("client_secret", clientSecret)); } parameters.add(new BasicNameValuePair("redirect_uri", redirectUri.toString())); final UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters); // Send post request urlConnection.setDoOutput(true); try (final OutputStream outputStream = urlConnection.getOutputStream()) { entity.writeTo(outputStream); } // parse result final JsonObject jsonObject; try (final InputStream stream = urlConnection.getInputStream()) { jsonObject = Json.createReader(stream).readObject(); } return jsonObject; }