Http Basic Authentication in Java using HttpClient? Http Basic Authentication in Java using HttpClient? java java

Http Basic Authentication in Java using HttpClient?


Have you tried this (using HttpClient version 4):

String encoding = Base64Encoder.encode(user + ":" + pwd);HttpPost httpPost = new HttpPost("http://host:post/test/login");httpPost.setHeader(HttpHeaders.AUTHORIZATION, "Basic " + encoding);System.out.println("executing request " + httpPost.getRequestLine());HttpResponse response = httpClient.execute(httpPost);HttpEntity entity = response.getEntity();


Ok so this one works. Just in case anybody wants it, here's the version that works for me :)

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.Base64;public class HttpBasicAuth {    public static void main(String[] args) {        try {            URL url = new URL ("http://ip:port/login");            String encoding = Base64.getEncoder().encodeToString(("test1:test1").getBytes(‌"UTF‌​-8"​));            HttpURLConnection connection = (HttpURLConnection) url.openConnection();            connection.setRequestMethod("POST");            connection.setDoOutput(true);            connection.setRequestProperty  ("Authorization", "Basic " + encoding);            InputStream content = (InputStream)connection.getInputStream();            BufferedReader in   =                 new BufferedReader (new InputStreamReader (content));            String line;            while ((line = in.readLine()) != null) {                System.out.println(line);            }        } catch(Exception e) {            e.printStackTrace();        }    }}


This is the code from the accepted answer above, with some changes made regarding the Base64 encoding. The code below compiles.

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import org.apache.commons.codec.binary.Base64;public class HttpBasicAuth {    public static void main(String[] args) {        try {            URL url = new URL ("http://ip:port/login");            Base64 b = new Base64();            String encoding = b.encodeAsString(new String("test1:test1").getBytes());            HttpURLConnection connection = (HttpURLConnection) url.openConnection();            connection.setRequestMethod("POST");            connection.setDoOutput(true);            connection.setRequestProperty  ("Authorization", "Basic " + encoding);            InputStream content = (InputStream)connection.getInputStream();            BufferedReader in   =                 new BufferedReader (new InputStreamReader (content));            String line;            while ((line = in.readLine()) != null) {                System.out.println(line);            }        }         catch(Exception e) {            e.printStackTrace();        }    }}