mirror of
https://github.com/vishapoberon/vipak.git
synced 2026-04-05 20:42:26 +00:00
testing http
This commit is contained in:
parent
955db770ca
commit
a3ce2fdcab
2 changed files with 63 additions and 18 deletions
74
http.Mod
74
http.Mod
|
|
@ -1,28 +1,74 @@
|
|||
MODULE http;
|
||||
IMPORT Internet, Logger;
|
||||
IMPORT Strings, Internet, Logger;
|
||||
CONST
|
||||
|
||||
MAXARRAYNUMBER = 10000;
|
||||
MAXARRAYNUMBEREXTENDED = 1000000;
|
||||
|
||||
TYPE PSTRING = POINTER TO ARRAY OF CHAR;
|
||||
|
||||
VAR
|
||||
buff: ARRAY 1000 OF CHAR;
|
||||
PROCEDURE get(host, port: ARRAY OF CHAR; VAR buff: ARRAY OF CHAR);
|
||||
buff: ARRAY MAXARRAYNUMBEREXTENDED OF CHAR;
|
||||
|
||||
PROCEDURE AppendEOLAndClean(buff: ARRAY OF CHAR; VAR buffClean: PSTRING);
|
||||
VAR i: LONGINT;
|
||||
BEGIN
|
||||
i := Strings.Length(buff);
|
||||
|
||||
NEW(buffClean, i + 3);
|
||||
|
||||
COPY(buff, buffClean^);
|
||||
|
||||
buffClean[i] := 0DX;
|
||||
buffClean[i + 1] := 0AX;
|
||||
buffClean[i + 2] := " ";
|
||||
END AppendEOLAndClean;
|
||||
|
||||
PROCEDURE get(host, path, port: ARRAY OF CHAR; VAR buff: ARRAY OF CHAR);
|
||||
VAR
|
||||
socket : Internet.Socket;
|
||||
connectionFlag: BOOLEAN;
|
||||
send: ARRAY 7 OF CHAR;
|
||||
send: ARRAY MAXARRAYNUMBER OF CHAR;
|
||||
sendClean: PSTRING;
|
||||
httpTail: ARRAY 16 OF CHAR;
|
||||
endOfLine: ARRAY 3 OF CHAR;
|
||||
tmpBuff: ARRAY MAXARRAYNUMBER OF CHAR;
|
||||
BEGIN
|
||||
COPY("", buff);
|
||||
httpTail := " HTTP/1.1";
|
||||
|
||||
connectionFlag := Internet.Connect(host, port, socket);
|
||||
send[0] := "G";
|
||||
send[1] := "E";
|
||||
send[2] := "T";
|
||||
send[3] := 0DX;
|
||||
send[4] := 0AX;
|
||||
send[5] := " ";
|
||||
(* Somewhy it's ignoring the last byte *)
|
||||
|
||||
send := "GET ";
|
||||
|
||||
connectionFlag := Internet.Write(socket, send);
|
||||
connectionFlag := Internet.Read(socket, buff);
|
||||
Strings.Append(path, send);
|
||||
|
||||
AppendEOLAndClean(send, sendClean);
|
||||
Logger.Log(sendClean^);
|
||||
connectionFlag := Internet.Write(socket, sendClean^);
|
||||
send := "HOST: ";
|
||||
|
||||
Strings.Append(host, send);
|
||||
|
||||
AppendEOLAndClean(send, sendClean);
|
||||
Logger.Log(sendClean^);
|
||||
connectionFlag := Internet.Write(socket, sendClean^);
|
||||
|
||||
AppendEOLAndClean("", sendClean);
|
||||
Logger.Log(sendClean^);
|
||||
connectionFlag := Internet.Write(socket, sendClean^);
|
||||
|
||||
REPEAT
|
||||
connectionFlag := Internet.Read(socket, tmpBuff);
|
||||
Strings.Append(tmpBuff, buff);
|
||||
Logger.Log(tmpBuff);
|
||||
UNTIL ~connectionFlag;
|
||||
|
||||
Internet.Disconnect(socket);
|
||||
END get;
|
||||
|
||||
BEGIN
|
||||
get("voto.am", "80", buff);
|
||||
get("norayr.am", "/seq.txt", "80", buff);
|
||||
Logger.Log(buff);
|
||||
|
||||
END http.
|
||||
7
makefile
7
makefile
|
|
@ -26,7 +26,6 @@ clean:
|
|||
run:
|
||||
./builds/opium install
|
||||
|
||||
file:
|
||||
cd builds && \
|
||||
$(VOC) -s \
|
||||
../FileManager.Mod -m
|
||||
|
||||
http:
|
||||
$(VOC) -s time.Mod logger.Mod types.Mod sockets.Mod netdb.Mod Internet.Mod http.Mod -m
|
||||
Loading…
Add table
Add a link
Reference in a new issue