java - Bad Requests and Timeouts -
i want access arbitrary webpage using sockets (as learning mechanism myself). code below not work, doing wrong?
import java.net.*; import java.io.*; public class illustration { public static void main(string args[]) throws exception { socket socket = new socket("www.google.com", 80); printwriter out = new printwriter(socket.getoutputstream(), true); bufferedreader reader = new bufferedreader( new inputstreamreader(socket.getinputstream())); bufferedreader stdin = new bufferedreader( new inputstreamreader(system.in)); string userinput; while ((userinput = stdin.readline()) != null) { out.println("get / http/1.1 \\r\\n host: www.google.com \\r\\n\\r\\n"); system.out.println("echo: " + reader.readline()); } } } after trying couple hours unable figure out doing wrong. want google's or other websites homepage. can help me?
you might seek next (using sockets)
package com.example.webpagesocket; import java.io.ioexception; import java.net.inetsocketaddress; import java.net.unknownhostexception; import java.nio.bytebuffer; import java.nio.charbuffer; import java.nio.channels.socketchannel; import java.nio.charset.charset; import java.nio.charset.charsetdecoder; import java.nio.charset.charsetencoder; public class getwebpageusingsockets { public static void main(string[] args) { string urlstring; urlstring = "www.google.com"; accessweb(urlstring); } private static void accessweb(string urlstring) { string host; string page; int slashloc; // set encoding , decoding charset charset = charset.forname("iso-8859-1"); charsetdecoder decoder = charset.newdecoder(); charsetencoder encoder = charset.newencoder(); if ((slashloc = urlstring.indexof('/')) < 0) { host = urlstring; page = ""; } else { host = urlstring.substring(0, slashloc); page = urlstring.substring(slashloc); } system.out.println("accessing web page demonstration"); system.out.println("host: '" + host + "' page: '" + page + "'"); socketchannel channel = null; seek { bytebuffer buffer = bytebuffer.allocatedirect(1024); charbuffer charbuffer = charbuffer.allocate(1024); inetsocketaddress socketaddress = new inetsocketaddress(host, 80); channel = socketchannel.open(); channel.connect(socketaddress); string request = "get " + page + " \r\n\r\n"; channel.write(encoder.encode(charbuffer.wrap(request))); while ((channel.read(buffer)) != -1) { buffer.flip(); decoder.decode(buffer, charbuffer, false); charbuffer.flip(); system.out.println(charbuffer); buffer.clear(); charbuffer.clear(); } } grab (unknownhostexception e) { system.err.println(e); } grab (ioexception e) { system.err.println(e); } { if (channel != null) { seek { channel.close(); } grab (ioexception ignored) { } } } system.out.println("\ndone."); } } java sockets
No comments:
Post a Comment