ich sitze schon wieder an einem Problem. Ich wuerde gerne ein Bild von einem Apache Server lesen. Dabei will ich nicht die API benutzen oder so.
Hier mal der Beispiel programmcode:
Code: Alles auswählen
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2808&highlight=
; Author: dige
; Date: 12. November 2003
Global returnstr.s
Procedure.s HttpPost2(Host.s, url.s, Parameter.s, Port.l, referer.s, cookie.s)
CRLF.s = Chr(13)+Chr(10)
If Port.l = 0
Port.l = 80
EndIf
If FindString(LCase(Host.s), "http://", 0) > 0
Host.s = ReplaceString(LCase(Host.s), "http://", "")
EndIf
HTTPHeader.s = "GET " + url.s + " HTTP/1.1" + CRLF.s + "Host: " + Host.s + CRLF.s
HTTPHeader.s + "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.8a4) Gecko/20040927" + CRLF.s
HTTPHeader.s + "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1" + CRLF.s
HTTPHeader.s + "Accept-Language: de,en;q=0.5" + CRLF.s
HTTPHeader.s + "Accept-Encoding: identity" + CRLF.s
HTTPHeader.s + "Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7" + CRLF.s
HTTPHeader.s + "Keep-Alive: 300" + CRLF.s
If referer.s <> ""
If FindString(LCase(referer.s), "http://", 0) = 0
referer.s = "http://"+referer.s
EndIf
HTTPHeader.s + "Referer: " + referer.s + CRLF.s
EndIf
If cookie.s <> ""
HTTPHeader.s + "Cookie: " + cookie.s + CRLF.s
EndIf
HTTPHeader.s + "Content-Type: application/x-www-form-urlencoded" + CRLF.s
If Len(Parameter.s) > 0
HTTPHeader.s + "Content-Length: " + Str(Len(Parameter.s)) + CRLF.s
EndIf
HTTPHeader.s + CRLF.s
Request.s = HTTPHeader.s + Parameter.s
ConnectionID.l = OpenNetworkConnection(Host.s, Port.l)
If ConnectionID.l
SendNetworkData(ConnectionID.l, Request.s, Len(Request.s))
ContentLength.l = 0 : inschleife.l = Date() : tmpbody.s = "" : tmpheader.s = "" : returnstr.s = "" : header3.s = ""
Repeat
Delay(1000)
tmppuffer.s = Space(61440)
laenge.l = 0
NCEvent.b = NetworkClientEvent(ConnectionID)
If NCEvent.b = 2
inschleife.l = Date() ; Wenn was kommt, immer wieder zuruecksetzen
laenge.l = ReceiveNetworkData(ConnectionID, tmppuffer.s, 61440) ; Maximal 60KByte abholen
Debug Left(tmppuffer.s, laenge.l)
Debug Len(Left(tmppuffer.s, laenge.l))
Debug laenge.l
Debug "-----------------------"
If Len(returnstr.s) + laenge > 61440
; nichts mehr dazuschreiben
Else
returnstr.s = returnstr.s + Left(tmppuffer.s, laenge.l)
;Debug returnstr.s
EndIf
EndIf
If FindString(returnstr.s, Chr(13)+Chr(10)+Chr(13)+Chr(10), 0) > 0
returnstr.s = Mid(returnstr.s, FindString(returnstr.s, Chr(13)+Chr(10)+Chr(13)+Chr(10), 0) + 4, Len(returnstr.s))
EndIf
If NCEvent.b = 0
If (Date() - inschleife.l) > 5 ; 2 Sekunden
ProcedureReturn returnstr.s
EndIf
EndIf
ForEver
Else
ProcedureReturn ""
EndIf
EndProcedure
InitNetwork()
HttpPost2("http://www.2homenet.de", "/1.jpg", "", 80, "", "")
CallDebugger
; ExecutableFormat=Windows
; EnableXP
; EOF
Desweitern wenn ich z.b. sage das er immer nur 1 Zeichen lesen soll, dann hat er ab und zu auch den fehler drinne das er angeblich ein Zeichen entfangen hat obwohl eins im String ist.
Wer kann mir helfen, was mache ich falsch. Mit reservierten Speicher habe ich auch schon gearbeitet, aber bringt keine verbesserung.
Wer kann mir helfen. Es ist mir sehr wichtig. 1000 Dank schonmal im voraus.
Gruß,
Torakas