Subversion Repositories Kolibri OS

Rev

Rev 5732 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4168 hidnplayr 1
 
5534 hidnplayr 2
	*url = pointer to ASCIIZ URL
4168 hidnplayr 3
	identifier = identifier of previously opened connection (keep-alive), or 0 to open a new one.
5769 hidnplayr 4
	flags = bit flags (see end of this document).
5
	*add_header = pointer to ASCIIZ additional header parameters, or null for none.
4221 hidnplayr 6
			Every additional parameter must end with CR LF bytes, including the last line.
4242 hidnplayr 7
Initiates a HTTP connection, using 'GET' method.
4168 hidnplayr 8
 - returns 0 on error, identifier otherwise.
9
10
 
5534 hidnplayr 11
	*url = pointer to ASCIIZ URL
4168 hidnplayr 12
	identifier = identifier of previously opened connection (keep-alive), or 0 to open a new one.
5769 hidnplayr 13
	flags = bit flags (see end of this document).
14
	*add_header = pointer to ASCIIZ additional header parameters, or null for none.
4221 hidnplayr 15
			Every additional parameter must end with CR LF bytes, including the last line.
4242 hidnplayr 16
Initiate a HTTP connection, using 'HEAD' method.
4168 hidnplayr 17
 - returns 0 on error, identifier otherwise
18
19
 
5534 hidnplayr 20
	*url = pointer to ASCIIZ URL
4168 hidnplayr 21
	identifier = identifier of previously opened connection (keep-alive), or 0 to open a new one.
5769 hidnplayr 22
	flags = bit flags (see end of this document).
23
	*add_header = pointer to ASCIIZ additional header parameters, or null for none.
4221 hidnplayr 24
			Every additional parameter must end with CR LF bytes, including the last line.
4242 hidnplayr 25
	*content-type = pointer to ASCIIZ string containing content type.
4168 hidnplayr 26
	content-length = length of the content (in bytes).
27
Initiate a HTTP connection, using 'POST' method.
28
The content itself must be send to the socket (which you can find in the structure),
29
using system function 75, 6.
30
 - returns 0 on error, identifier otherwise
31
32
 
4996 hidnplayr 33
	identifier = identifier which one of the previous functions returned
4168 hidnplayr 34
This procedure will handle all incoming data for a connection and place it in the buffer.
35
As long as the procedure expects more data, -1 is returned and the procedure must be called again.
36
 - When transfer is done, the procedure will return 0.
37
The receive procedure is non-blocking by default, but can be made to block by setting FLAG_BLOCK.
5732 hidnplayr 38
4168 hidnplayr 39
 
4541 hidnplayr 40
This structure is defined in http.inc (and not copied here because it might still change.)
4168 hidnplayr 41
The identifier used by the functions is actually a pointer to this structure.
42
In the dword named .flags, the library will set various bit-flags indicating the status of the process.
43
(When a transfer is done, one should check these bit-flags to find out if the transfer was error-free.)
44
The HTTP header is placed at the end of this structure. The content is placed in another buffer.
4541 hidnplayr 45
The dword .status contains the status code received from the server (e.g. 200 for OK).
4168 hidnplayr 46
In header_length you'll find the length of the header as soon as it has been received.
47
In content_ptr you'll find a pointer to the actual content.
4541 hidnplayr 48
In content_length you'll find the length of the content.
49
In content_received, you'll find the number of content bytes already received.
4986 hidnplayr 50
51
 
4996 hidnplayr 52
	identifier = identifier which one of the previous functions returned
53
	*dataptr = pointer to the data you want to send
54
	datalength = length of the data to send (in bytes)
55
This procedure can be used to send data to the server (POST)
56
 - returns number of bytes sent, -1 on error
57
5732 hidnplayr 58
 
59
 
60
4996 hidnplayr 61
 
5769 hidnplayr 62
63
 
5732 hidnplayr 64
In this case, the session must be closed manually when done by using the exported disconnect() function.
65
66
 
67
This can be used for example to receive an internet radio stream,
68
but also to download larger files for which it does not make sense to put them completely in RAM first.
69
70
 
71
This, for example, can be used when downloading a file straight to disk.
72
73
 
74
If however, you want to receive multiple files, or do other things in the program mainloop,
75
you should use system function 10 or 23 to wait for network event before calling one or more receive() functions.
76