HTTP

From Rosetta Code
Revision as of 01:27, 15 February 2009 by rosettacode>Guga360 (added visual basic dot net)
Task
HTTP
You are encouraged to solve this task according to the task description, using any language you may know.

Print a URL's content (source code) to the console.

ActionScript

<lang actionscript>package {

   import flash.display.Sprite;
   import flash.events.Event;
   import flash.net.*;
   public class RequestExample extends Sprite
   {
       public function RequestExample()
       {
           var loader:URLLoader = new URLLoader();
           loader.addEventListener(Event.COMPLETE, loadComplete);
           loader.load(new URLRequest("http://www.rosettacode.org"));
       }
       private function loadComplete(evt:Event):void
       {
           trace(evt.target.data);
       }
   }

}</lang>

C

Library: libcurl

<lang c>#include <stdio.h>

  1. include <curl/curl.h>

int main() {

 CURL *curlHandle;
 curlHandle = curl_easy_init();
 curl_easy_setopt(curlHandle, CURLOPT_URL, "http://www.rosettacode.org");
 /* the following let us specify rosettacode.org instead of
    rosettacode.org/wiki/Main_Page */
 curl_easy_setopt(curlHandle, CURLOPT_FOLLOWLOCATION, 1);
 int success = curl_easy_perform(curlHandle);
 curl_easy_cleanup(curlHandle);
 return 0;

}</lang>

C#

<lang csharp>using System; using System.Net; using System.Text;

class Program {

 static void Main()
 {
   string url = "http://www.rosettacode.org/";
   WebClient wc = new WebClient();
   byte[] data = wc.DownloadData(url);
   string content = Encoding.UTF8.GetString(data);
   Console.WriteLine(content);
 }

}</lang>

Erlang

Synchronous

-module(main).
-export([main/1]).

main([Url|[]]) ->
   inets:start(),
   case http:request(Url) of
       {ok, {_V, _H, Body}} -> io:fwrite("~p~n",[Body]);
       {error, Res} -> io:fwrite("~p~n", Res)
   end.

Asynchronous

-module(main).
-export([main/1]).

main([Url|[]]) ->
   inets:start(),
   http:request(get, {Url, [] }, [], [{sync, false}]),
   receive
       {http, {_ReqId, Res}} -> io:fwrite("~p~n",[Res]);
       _Any -> io:fwrite("Error: ~p~n",[_Any])
       after 10000 -> io:fwrite("Timed out.~n",[])
   end.

Using it

|escript ./req.erl http://www.rosettacode.org

Icon

link cfunc
procedure main(args)
   get(args[1])
end

procedure get(url)
   local f, host, port, path
   url ? {
         ="http://" | ="HTTP://"
         host := tab(upto(':/') | 0)
         if not (=":" & (port := integer(tab(upto('/'))))) then port := 80
         if pos(0) then path := "/" else path := tab(0)
   }
   write(host)
   write(path)
   f := tconnect(host, port) | stop("Unable to connect")
   writes(f, "GET ", path | "/" ," HTTP/1.0\r\n\r\n")
   while write(read(f))
end

Using it

|icon req.icn http://www.rosettacode.org

Java

<lang java5>import java.util.Scanner; import java.net.URL;

public class Main {

    public static void main(String[] args) throws Exception {         
        URL url = new URL("http://www.rosettacode.org");         
        Scanner sc = new Scanner(url.openStream());
        while( sc.hasNext() ) System.out.println(sc.nextLine());         
    }

}</lang>

Apache Commons IO

<lang java5>import org.apache.commons.io.IOUtils; import java.net.*;

public class Main {

   public static void main(String[] args) throws Exception {
   	IOUtils.copy(new URL("http://rosettacode.org").openStream(),System.out);    	    	    		    
   }

}</lang>

Perl

<lang perl>using LWP::Simple; print get("http://www.rosettacode.org");</lang>

PHP

<lang php>print(file_get_contents("http://www.rosettacode.org"));</lang>

Python

<lang python>import urllib url = urllib.urlopen("http://www.rosettacode.org") print url.read() url.close()</lang>

<lang python>import urllib print urllib.urlopen("http://rosettacode.org").read()</lang>

Ruby

<lang ruby>require 'open-uri' require 'kconv'

puts open("http://rosettacode.org").read</lang>

Tcl

<lang tcl>package require http set request [http::geturl "http://www.rosettacode.org"] puts [http::data $request]</lang>

UNIX Shell

<lang bash>wget http://www.rosettacode.org -O tmp -o /dev/null cat tmp rm tmp</lang>

Visual Basic .NET

<lang vbnet> Imports System.Net

Module Module1

   Sub Main()
       Dim client As WebClient = New WebClient()
       Dim content As String = client.DownloadString("http://www.google.com")
       Console.WriteLine(content)
   End Sub

End Module </lang>