Difference between url and uri bael 864 hariprasad net (#2108)
* BAEL-864, java.net.* * java-networking Bael-864, revision * Final and static keywords removed. * Bael-486 Static import for JUnit into pom.xml was added. * Bael-486, pom.xml was renamed on networking-pom.xml to deactivate it. * Maven pom.xml changed. * Delete java-networing project. * Bael-684, rearanged.
This commit is contained in:
parent
fada609f16
commit
9048d5215b
|
@ -86,6 +86,11 @@
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
<version>${org.slf4j.version}</version>
|
<version>${org.slf4j.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
<version>${org.slf4j.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
<artifactId>logback-classic</artifactId>
|
<artifactId>logback-classic</artifactId>
|
||||||
|
|
|
@ -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 static 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);
|
||||||
|
log.info(content);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
|
@ -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 static 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue