This repository was archived by the owner on Mar 15, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLibHTTP3.html
More file actions
185 lines (164 loc) · 9.49 KB
/
LibHTTP3.html
File metadata and controls
185 lines (164 loc) · 9.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<h1>LibHTTP 4</h1>
LibHTTP is a general perpose library for UnrealEngine2. It allows you to fetch files stored on webservers. <br />
Features:
<ul>
<li>Support for HTTP version 1.0 and 1.1</li>
<li>Support for GET/POST/HEAD/TRACE request methods</li>
<li>Normal and accelerated transfer modes (accelerated mode creates a performance hit)</li>
<li>Response and Request Header managent</li>
<li>Cookie management</li>
<li>Authentication supports (both Basic and Digest methods are supported)</li>
<li>Support for HTTP proxies</li>
<li>Gracefull handling of connection timeouts</li>
<li>Automatic decoding of chunked data</li>
<li>Automatically follows redirections (creates a redirection history)</li>
<li>Support for <code>multipart/form-data</code> POST data (prefered form)</li>
</ul>
<h2>Download</h2>
The downloads include the binary .u file and the source. DO NOT recompile the source, use the binary, or else users can get a "modified package" error.
<ul>
<li>Version 4 <a href="http://ut2004.elmuerte.com/files/LibHTTP4.zip">[zip]</a> (UT2004)</li>
<li>Version 3.5.3 <a href="http://ut2004.elmuerte.com/files/LibHTTP3_53.zip">[zip]</a> (UT2004)</li>
<li>Version 3.5 <a href="http://ut2004.elmuerte.com/files/LibHTTP3_5.zip">[zip]</a> (UT2004)</li>
<li>Version 3 <a href="http://ut2004.elmuerte.com/files/LibHTTP3.zip">[zip]</a> (UT2004)</li>
<li>Version 2 <a href="http://ut2004.elmuerte.com/files/LibHTTP2.zip">[zip]</a> (UT2004)</li>
<li>Version 2 <a href="http://ut2004.elmuerte.com/files/LibHTTP2x3.zip">[zip]</a> (UT2003)</li>
<li>Version 1 <a href="http://www.drunksnipers.com/files/ut2003/LibHTTPv100.zip">[zip]</a> (LGPL, UT2003)</li>
</ul>
<h2>License</h2>
<pre>
Lesser Open Unreal Mod License
Version 1.1, September 2005
0. Definitions
"Program" the work, either in binary or source form, that has a notice
attached to it stating that it has been released under this
license it by the copyright holder.
"Modification" a derivate of the Program or any other work based on the Program
"Linking" using parts of the Program, or using parts of any other work,
thus creating a direct dependency between two Programs.
"You" the licensee
"Runtime Environment"
the virtual machine or operating system required to run the
Program, as released by the Publisher or Creator of said
runtime environment. This includes any extentions or updates
for the runtime environment released by the Publisher or
Creator.
1. License
Herewith everybody is granted permission to copy and distribute verbatim copies
of this document. The only restriction lies on changing the content, with the
exception to translation of this license.
This license applies to the Program that has been released under this license.
The license only applies to copying, distribution and modification of the
Program. Execution or output of the Program are not covered by this license,
however the right for additional limitations on the use (that do not cover
copying, distribution or modification) is granted to the copyright holder.
This license is only valid when all terms in this license comply with the
licenses of the dependecies of the Program. This includes the license of the
possible required runtime environment.
2. Copying and distribution
You are granted to copy or distribute verbatim copies of the Program, on any
medium, or in any format as you see fit. You are not limited to charging a fee
for the physical act of transferring the copy, nor are you limited to provide
warranty for the Program in return of a fee. Unless this is prohibited by the
license of the Runtime Environment.
Any distribution of the program should be accompanied with a verbatim copy of
this license.
3. Modification
You are allowed to modify the Program, or portions of it, therefore making it a
derivate of the Program. You are allowed to distribute your Modifications under
the following conditions:
- You must clearly state that it is a modification of the Program
- The original copyright notice must be kept intact
- The modified files must contain notices of the changes made to it
- The Modification must be released under the same license as the Program
- Distribution happens in compliance with section 2
4. Source
The original source of the Program or Modification must be freely available on
request.
5. Linking
The license grants exclusive right to link with any non-free part of the
Runtime Environment, as provided by the publisher or creator of said Runtime
Environment.
Using addapted portions of source code available in the runtime environment
in the Program is only allowed under the following terms:
- the addapted code is clearly marked to originate from the runtime
environment, quoting the original copyright.
- the following notice is added to the top of the file:
"This file contains portions of code from the runtime environment."
6. NON WARRANTY
THIS SOFTWARE DOES NOT COME WITH A WARRANTY OF ANY KIND, UNLESS NOTED OTHERWISE
BY THE COPYRIGHT HOLDER OR WARRANTY PROVIDER. THE ENTIRE RISK OF THE PERFORMANCE
AND QUALITY OF THE PROGRAM LIES WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
YOU WILL ASSUME ALL COSTS FOR REQUIRED REPAIR OR CORRECTION.
</pre>
<h2>UnrealEngine2 support</h2>
Version 2 has been developed using the UT2004 build of the UnrealEngine2. However, there's a big chance that this library also works on other UnrealEngine2 build without much additional work. <br />
If you are going to use this library on a diffirent build of the UnrealEngine2, please notify me (elmuerte <i>at</i> drunksnipers.com) so we can create a release version of that build.
<h2>Documentation</h2>
The documentation for this library can be created from the source using <a href="http://wiki.beyondunreal.com/wiki/UnCodeX" target="_blank">UnCodeX</a> but it is also available on the <a href="http://wiki.beyondunreal.com/wiki/LibHTTP" target="_blank">UnrealWiki</a>.
<h2>Version history</h2>
New in version 200:
<ul>
<li> Supports HTTP 1.1</li>
<li> Cached resolves</li>
<li> Redirection history</li>
<li> Chuncked encoding automatically decoded</li>
<li> Added connection timeout</li>
<li> More delegates</li>
</ul>
New in version 300:
<ul>
<li> bug fixes</li>
<li> Improved easy of use:
get(), post(), head()</li>
<li> Support for <code>multipart/form-data</code> POST data</li>
<li> Two different transfer modes: Normal and Fast (tries to download as much
data as allowed within a single tick)</li>
<li> Support for proxy authentication, you get the best performance by
setting the right user/pass in the beginning. Otherwise the code using
this library will have to do additional processing when the proxy
user and pass are not accepted.</li>
<li> Better support for various authentication methods</li>
<li> Support for digest authentication (more secure HTTP authentication). When
digest is used instead of basic the client has to make 2 requests. With
the first request the server will send information needed to construct
the response. Basic authentication doesn't have this issue.</li>
<li> Cookie storage class will automatically be created when
<code>bProcCookies</code> or <code>bSendCookies</code> is set to true
(and the cookies hasn't been set)</li>
</ul>
New in version 350:
<ul>
<li>All delegates contains a HttpSock Sender argument</li>
<li>New function string randString(optional int length, optional coerce string prefix)</li>
<li>MultiPart divider string is now more unique (prevents potential issues with the content data)</li>
<li>Empty multipart items are never added</li>
<li>Made more support functions public</li>
<li>New utility function string timestampToString(int timestamp, optional string Timezone, optional string format) that will convert a UNIX timestamp to a string (RFC 1123, RFC 1036, RFC 2822, ANSI C asctime formats supported)</li>
<li>Fixed potentional issues with timestamps and cookies</li>
</ul>
New in version 400:
<ul>
<li>Fixed a bug in the location parsing where the port was never parsed correctly.</li>
<li>Added a workaround for the quoted strings in structs bug in UE2 for the cookies, in some cases cookie values could have a quote or two.</li>
<li>... change to use xURL</li>
<li>... added bAuthRetry thing</li>
<li>...</li>
New in version 400: <br />
* redone the redirection processing, now with better support for each
redirection type. <br />
* new variable bRfcCompliantRedirect, set this to false for the old, and
bad, redirection handling on 301/302 headers (e.g. transform POST into
GET) <br />
* moved DNS caching to a global object, multiple HttpSock classes now use
the same cache data <br />
* added automatic retrying when authentication data is provided in the url,
the prefered method for using authenticated locations is to provide the
username and password in the url or set them in the currenturl after the
OnRequireAuthorization was received. <br />
* ClearRequestData() will now automatically clear authentication information
newsfeed handle CDATA
fixed cookie handler
</ul>
<h2>Copyright</h2>
Copyright 2003, 2004, 2005 Michiel "El Muerte" Hendriks <elmuerte <i>at</i> drunksnipers.com>