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 |