Seite 2 von 2

Re: HTTP Request

Verfasst: 04.01.2010 21:27
von HeX0R
Versuch es mal so:

Code: Alles auswählen

InitNetwork()

Procedure LoadSite(Site.s, Info.s, TimeOUT = 5000)
	Protected Header.s, Cid, R, Pos, T
	Protected *Buffer = AllocateMemory($10000)

	If *Buffer

		Cid = OpenNetworkConnection(Site, 80)
		If Cid

			Header = "POST /index.php HTTP/1.1" + #CRLF$
			Header + "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + #CRLF$
			Header + "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" + #CRLF$
			Header + "Host: " + Site + #CRLF$
			Header + "Content-Length: " + Str(Len(Info)) + #CRLF$
			Header + "Content-Type: application/x-www-form-urlencoded" + #CRLF$
			Header + "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" + #CRLF$
			Header + "Cache-Control: no-cache" + #CRLF$
			Header + "Cookie: keep-alive" + #CRLF$ + #CRLF$
			Header + Info + #CRLF$

			SendNetworkString(Cid, Header)
			T = ElapsedMilliseconds() + TimeOUT

			Repeat
				Select NetworkClientEvent(Cid)
					Case 0
						Delay(5)
					Case #PB_NetworkEvent_Data
						R = ReceiveNetworkData(Cid, *Buffer + Pos, MemorySize(*Buffer) - Pos)
						If R > -1
							Pos + R
							If Pos >= 11
								If PeekS(*Buffer + Pos - 11, 11, #PB_UTF8) = "</html>" + #CRLF$ + #CRLF$
									Break
								EndIf
							EndIf
						EndIf
				EndSelect
			Until T < ElapsedMilliseconds()

			If CreateFile(0, GetTemporaryDirectory() + "Buffer.htm")
				WriteData(0, *Buffer, Pos)
				CloseFile(0)
				RunProgram(GetTemporaryDirectory() + "Buffer.htm")
			EndIf
			CloseNetworkConnection(Cid)
		EndIf
		FreeMemory(*Buffer)
	EndIf

EndProcedure

Re: HTTP Request

Verfasst: 04.01.2010 22:24
von Tur0k
Vielen dank, HeX0R! :D
Klappt super.

Ich versuch mal, den Code zu verstehen.

Damit ist das Problem gelöst :) Danke auch an die anderen :D


[Gelöst]