HttpURI.st
author Stefan Vogel <sv@exept.de>
Sat, 03 Jul 2004 08:27:24 +0200
changeset 1461 998d6076f34d
parent 1310 948ed141b0b7
child 2870 6eef483653e5
permissions -rw-r--r--
Fix absolute UR handling
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1309
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     1
"
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     3
              All Rights Reserved
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     4
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     5
 This software is furnished under a license and may be used
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     6
 only in accordance with the terms of that license and with the
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     8
 be provided or otherwise made available to, or used by, any
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
     9
 other person.  No title to or ownership of the software is
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    10
 hereby transferred.
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    11
"
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    12
1005
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
"{ Package: 'stx:libbasic2' }"
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
HierarchicalURI subclass:#HttpURI
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
	instanceVariableNames:''
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
	classVariableNames:''
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
	poolDictionaries:''
1310
948ed141b0b7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1309
diff changeset
    19
	category:'Net-Resources'
1005
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
!
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
1309
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    22
!HttpURI class methodsFor:'documentation'!
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    23
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    24
copyright
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    25
"
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    26
 COPYRIGHT (c) 2002 by eXept Software AG
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    27
              All Rights Reserved
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    28
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    29
 This software is furnished under a license and may be used
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    30
 only in accordance with the terms of that license and with the
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    32
 be provided or otherwise made available to, or used by, any
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    33
 other person.  No title to or ownership of the software is
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    34
 hereby transferred.
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    35
"
c752d54f4e09 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1276
diff changeset
    36
! !
1005
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
!HttpURI class methodsFor:'accessing'!
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
schemes
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    ^ #(http)
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
! !
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
!HttpURI methodsFor:'defaults'!
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
defaultPort
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
    ^ 80
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
! !
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
!HttpURI methodsFor:'stream access'!
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
readStreamDo:aBlock
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
    "use HTTPInterface for now"
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
    |response headerInfo mime|
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
    response := HTTPInterface get:self path 
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
                    fromHost:self host 
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
                    port:self port
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
                    accept:#('*/*')  
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
                    fromDocument:nil.
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
    headerInfo := response headerInfo.
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
    mime := headerInfo at:'content-type' ifAbsent:nil.
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
    mime notNil ifTrue:[
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
        headerInfo at:#MIME put:mime.
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    69
    ].
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    70
    aBlock value:response data readStream value:headerInfo
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    71
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    72
    "
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    73
     'http://www.exept.de/' asURI readStreamDo:[:stream :attributes | 
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    74
         self halt
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    75
      ].
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    76
    "
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    77
! !
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    78
1276
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    79
!HttpURI methodsFor:'testing'!
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    80
1461
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    81
isAbsolute
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    82
    "there is nothing like a relative http URI"
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    83
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    84
    ^ true
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    85
!
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    86
1276
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    87
isRemote
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    88
    "return true, if this is a remote URI"
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    89
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    90
    ^ true
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    91
! !
fd3f0d37513c Print without password.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
    92
1005
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    93
!HttpURI class methodsFor:'documentation'!
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
version
1461
998d6076f34d Fix absolute UR handling
Stefan Vogel <sv@exept.de>
parents: 1310
diff changeset
    96
    ^ '$Header: /cvs/stx/stx/libbasic2/HttpURI.st,v 1.5 2004-07-03 06:27:24 stefan Exp $'
1005
7ed6fa7ccfba initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
! !