Bael-864, Networking, core-java. (#2111)

This commit is contained in:
hariprasad108 2017-06-19 22:14:48 +02:00 committed by maibin
parent ed926b3790
commit 547b5850fb
3 changed files with 184 additions and 0 deletions

View File

@ -0,0 +1,69 @@
package com.baeldung.javanetworking.url;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class URLDemo {
private final Logger log = LoggerFactory.getLogger(URLDemo.class);
String URLSTRING = "https://wordpress.org:443/support/topic/page-jumps-within-wordpress/?replies=3#post-2278484";
// parsed locator
String URLPROTOCOL = "https";
// final static String URLAUTHORITY = "wordpress.org:443";
String URLHOST = "wordpress.org";
String URLPATH = "/support/topic/page-jumps-within-wordpress/";
// final static String URLFILENAME = "/support/topic/page-jumps-within-wordpress/?replies=3";
// final static int URLPORT = 443;
int URLDEFAULTPORT = 443;
String URLQUERY = "replies=3";
String URLREFERENCE = "post-2278484";
String URLCOMPOUND = URLPROTOCOL + "://" + URLHOST + ":" + URLDEFAULTPORT + URLPATH + "?" + URLQUERY + "#" + URLREFERENCE;
URL url;
URLConnection urlConnection = null;
HttpURLConnection connection = null;
BufferedReader in = null;
String urlContent = "";
public String testURL(String urlString) throws IOException, IllegalArgumentException {
String urlStringCont = "";
// comment the if clause if experiment with URL
/*if (!URLSTRING.equals(urlString)) {
throw new IllegalArgumentException("URL String argument is not proper: " + urlString);
}*/
// creating URL object
url = new URL(urlString);
// get URL connection
urlConnection = url.openConnection();
connection = null;
// we can check, if connection is proper type
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;
} else {
log.info("Please enter an HTTP URL");
throw new IOException("HTTP URL is not correct");
}
// we can check response code (200 OK is expected)
log.info(connection.getResponseCode() + " " + connection.getResponseMessage());
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String current;
while ((current = in.readLine()) != null) {
urlStringCont += current;
}
return urlStringCont;
}
public static void main(String[] args) throws Exception {
URLDemo demo = new URLDemo();
String content = demo.testURL(demo.URLCOMPOUND);
demo.log.info(content);
}
}

View File

@ -0,0 +1,9 @@
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

View File

@ -0,0 +1,106 @@
package com.baeldung.javanetworking.url.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baeldung.javanetworking.url.URLDemo;
@FixMethodOrder
public class URLDemoTest {
private final Logger log = LoggerFactory.getLogger(URLDemo.class);
static String URLSTRING = "https://wordpress.org:443/support/topic/page-jumps-within-wordpress/?replies=3#post-2278484";
// parsed locator
static String URLPROTOCOL = "https";
String URLAUTHORITY = "wordpress.org:443";
static String URLHOST = "wordpress.org";
static String URLPATH = "/support/topic/page-jumps-within-wordpress/";
String URLFILENAME = "/support/topic/page-jumps-within-wordpress/?replies=3";
int URLPORT = 443;
static int URLDEFAULTPORT = 443;
static String URLQUERY = "replies=3";
static String URLREFERENCE = "post-2278484";
static String URLCOMPOUND = URLPROTOCOL + "://" + URLHOST + ":" + URLDEFAULTPORT + URLPATH + "?" + URLQUERY + "#" + URLREFERENCE;
static URL url;
URLConnection urlConnection = null;
HttpURLConnection connection = null;
BufferedReader in = null;
String urlContent = "";
@BeforeClass
public static void givenEmplyURL_whenInitializeURL_thenSuccess() throws MalformedURLException {
url = new URL(URLCOMPOUND);
}
// check parsed URL
@Test
public void givenURL_whenURLIsParsed_thenSuccess() {
assertNotNull("URL is null", url);
assertEquals("URL string is not equal", url.toString(), URLSTRING);
assertEquals("Protocol is not equal", url.getProtocol(), URLPROTOCOL);
assertEquals("Authority is not equal", url.getAuthority(), URLAUTHORITY);
assertEquals("Host string is not equal", url.getHost(), URLHOST);
assertEquals("Path string is not equal", url.getPath(), URLPATH);
assertEquals("File string is not equal", url.getFile(), URLFILENAME);
assertEquals("Port number is not equal", url.getPort(), URLPORT);
assertEquals("Default port number is not equal", url.getDefaultPort(), URLDEFAULTPORT);
assertEquals("Query string is not equal", url.getQuery(), URLQUERY);
assertEquals("Reference string is not equal", url.getRef(), URLREFERENCE);
}
// Obtain the content from location
@Test
public void givenURL_whenOpenConnectionAndContentIsNotEmpty_thenSuccess() throws IOException {
try {
urlConnection = url.openConnection();
} catch (IOException ex) {
urlConnection = null;
ex.printStackTrace();
}
assertNotNull("URL Connection is null", urlConnection);
connection = null;
assertTrue("URLConnection is not HttpURLConnection", urlConnection instanceof HttpURLConnection);
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;
}
assertNotNull("Connection is null", connection);
log.info(connection.getResponseCode() + " " + connection.getResponseMessage());
try {
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
} catch (IOException ex) {
in = null;
ex.printStackTrace();
}
assertNotNull("Input stream failed", in);
String current;
try {
while ((current = in.readLine()) != null) {
urlContent += current;
}
} catch (IOException ex) {
urlContent = null;
ex.printStackTrace();
}
assertNotNull("Content is null", urlContent);
assertTrue("Content is empty", urlContent.length() > 0);
}
}