testing http

This commit is contained in:
Ruben Shekspir 2019-05-04 14:35:15 +04:00
parent 955db770ca
commit a3ce2fdcab
2 changed files with 63 additions and 18 deletions

View file

@ -1,28 +1,74 @@
MODULE http; MODULE http;
IMPORT Internet, Logger; IMPORT Strings, Internet, Logger;
CONST
MAXARRAYNUMBER = 10000;
MAXARRAYNUMBEREXTENDED = 1000000;
TYPE PSTRING = POINTER TO ARRAY OF CHAR;
VAR VAR
buff: ARRAY 1000 OF CHAR; buff: ARRAY MAXARRAYNUMBEREXTENDED OF CHAR;
PROCEDURE get(host, port: ARRAY OF CHAR; VAR buff: ARRAY 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 VAR
socket : Internet.Socket; socket : Internet.Socket;
connectionFlag: BOOLEAN; 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 BEGIN
connectionFlag := Internet.Connect(host, port, socket); COPY("", buff);
send[0] := "G"; httpTail := " HTTP/1.1";
send[1] := "E";
send[2] := "T"; connectionFlag := Internet.Connect(host, port, socket);
send[3] := 0DX;
send[4] := 0AX; send := "GET ";
send[5] := " ";
(* Somewhy it's ignoring the last byte *) 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;
connectionFlag := Internet.Write(socket, send);
connectionFlag := Internet.Read(socket, buff);
Internet.Disconnect(socket); Internet.Disconnect(socket);
END get; END get;
BEGIN BEGIN
get("voto.am", "80", buff); get("norayr.am", "/seq.txt", "80", buff);
Logger.Log(buff); Logger.Log(buff);
END http. END http.

View file

@ -26,7 +26,6 @@ clean:
run: run:
./builds/opium install ./builds/opium install
file:
cd builds && \ http:
$(VOC) -s \ $(VOC) -s time.Mod logger.Mod types.Mod sockets.Mod netdb.Mod Internet.Mod http.Mod -m
../FileManager.Mod -m