Hallo zusammen,
ich würde gerne mit Hilfe der Library "Apache Http Client" auf eine URL zugreifen, die eine JSON-Datei anzeigt und diese auslesen. Es ist ein Http-Proxy und eine Basic Authentication mittels Http-Header notwendig. Als Header muss Authorization Basic „username : password Base64 encodiert“ gesetzt sein.
Leider bin ich nun nach ettlichen Versuchen an einem Punkt angekommen, an dem ich einfach nicht mehr weiß was ich noch anderst machen kann...
Hier einer meiner Versuche:
Würde mich über Anregungen, Tipps oder vielleicht sogar Beispiele sehr freuen!
MfG
ich würde gerne mit Hilfe der Library "Apache Http Client" auf eine URL zugreifen, die eine JSON-Datei anzeigt und diese auslesen. Es ist ein Http-Proxy und eine Basic Authentication mittels Http-Header notwendig. Als Header muss Authorization Basic „username : password Base64 encodiert“ gesetzt sein.
Leider bin ich nun nach ettlichen Versuchen an einem Punkt angekommen, an dem ich einfach nicht mehr weiß was ich noch anderst machen kann...
Hier einer meiner Versuche:
Java:
public static void main(String[] args) throws Exception {
// ************PROXY************
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope("xx-proxy-xxxx.xxxx.com", 8080),
new UsernamePasswordCredentials("de\\xxxxx", "xxxxxxxxx"));
credsProvider.setCredentials(new AuthScope("https://xxxxxxxx.com/api/v1/exemplar/serialnumber?identnumber=xxxxxxxxxxxx", 8080),
new UsernamePasswordCredentials("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
try {
HttpHost target = new HttpHost("xxxxxxxx.com/api/v1/exemplar/serialnumber?identnumber=xxxxxxxxxxxx", 8080, "https");
HttpHost proxy = new HttpHost("xx-proxy-xxxx.xxxx.com", 8080);
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
HttpGet httpget = new HttpGet("https://xxxxxxxx.com/api/v1/exemplar/serialnumber?identnumber=xxxxxxxxxxxx");
httpget.setConfig(config);
System.out.println("Executing request " + httpget.getRequestLine() + " to " + target + " via " + proxy);
CloseableHttpResponse response = httpclient.execute(target, httpget);
try {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
System.out.println(EntityUtils.toString(response.getEntity()));
} finally {
response.close();
}
} finally {
httpclient.close();
}
// ************BASIC AUthentication************
try {
String webPage = "https://xxxxxxxx.com/api/v1/exemplar/serialnumber?identnumber=xxxxxxxxxxxx";
String name = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String password = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
String authString = name + ":" + password;
System.out.println("auth string: " + authString);
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
System.out.println("Base64 encoded auth string: " + authStringEnc);
URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream is = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int numCharsRead;
char[] charArray = new char[1024];
StringBuffer sb = new StringBuffer();
while ((numCharsRead = isr.read(charArray)) > 0) {
sb.append(charArray, 0, numCharsRead);
}
String result = sb.toString();
System.out.println("*** BEGIN ***");
System.out.println(result);
System.out.println("*** END ***");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// ************ABFRAGE************
HttpGet httpGet = new HttpGet("https://xxxxxxxx.com/api/v1/exemplar/serialnumber?identnumber=xxxxxxxxxxxx");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
try {
System.out.println(response1.getStatusLine());
HttpEntity entity1 = response1.getEntity();
EntityUtils.consume(entity1);
} finally {
response1.close();
}
}
Würde mich über Anregungen, Tipps oder vielleicht sogar Beispiele sehr freuen!
MfG