WinHttp.WinHttpRequest Fehlermeldung

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: WinHttp.WinHttpRequest Fehlermeldung

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by effel » 17 Feb 2018, 17:59

@garry
cool, sobald ich die internetverbindung trenne zeigt das script den fehlercode an

Code: Select all

---------------------------
Fehler
---------------------------
Keine Internetverbindung
Error=0x80072EE7 - 
Source:		WinHttp.WinHttpRequest
Description:	Der Servername oder die Serveradresse konnte nicht verarbeitet werden.


HelpFile:		(null)
HelpContext:	0
---------------------------
OK   
---------------------------

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by garry » 17 Feb 2018, 11:32

hello effel
hier ein Beispiel damit die richtige Fehlermeldung erfasst wird im logfile

Code: Select all

;f1:="https://www.websitenotexist.de"
f1:="http://50.7.70.58:8708/played.html"

xx:=ComObjCreate("WinHttp.WinHttpRequest.5.1")
;- es werden keine Fehler angezeigt -----------
;ComObjError(false)
;xx.Silent := True    ;- script failure = off
;---------------------------------------------
xx.SetTimeouts(500,500,500,500)
;xx.SetTimeouts(1,1,1,1)              ;<- Fehler = The operation timed out
gosub,aa1
return

aa1:
try{
    xx.Open("GET",f1)
    xx.Send()
    aac=
    aac:=xx.ResponseText
} catch e {
    xxx:=e.Message
    msgbox, 262208,ERROR,Error=`n%xxx%`n------------------------------------------`n
    return
    }
msgbox, 262208,%f1%,%aac%
return

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by effel » 16 Feb 2018, 15:01

danke nnnik, damit funktioniert es

Code: Select all

/*
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://www.webseite.de", true)
whr.Send()
whr.WaitForResponse()
webseiteHTML := whr.ResponseText
*/

Try {
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://www.webseite.de", true)
whr.Send()
whr.WaitForResponse()
webseiteHTML := whr.ResponseText
}
catch e {
fileappend, %TimeStamp%`n, ____fehler.txt
soundbeep, 2000
msgbox, 0, Fehler, Keine Internetverbindung, 5
reload
}

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by nnnik » 15 Feb 2018, 07:56

Alle Fehler von Code der in einem Try Block steht führen dazu, dass der dazugehörige catch block aufgerufen wird.
Der Code kommt in das Script welches den Fehler erzeugt.
Da ich deinen Code nicht habe kann ich es dir nicht an deinem code zeigen.

Am besten liest du dir mal die Hilfe zu try und catch durch.

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by effel » 15 Feb 2018, 07:16

hallo nnnik, danke für die schnelle antwort, aber ich verstehe leider nicht wie ich mit dem code umgehen soll. wird er in dem arbeitsscript eingebunden? oder läuft er als extra script?

was muss ich wo eintragen?

sorry aber ich hab wie du sicher schon bemerkt hast nur rudimentäres halbwissen.

Re: WinHttp.WinHttpRequest Fehlermeldung

Post by nnnik » 15 Feb 2018, 06:58

Du kannst alle Fehlermeldungen in einem Try-Catch Block auffangen.

Code: Select all

Try {
	wasAuchImmerDenFehlerVerursacht()
} catch e{
	wirdAufgerufenWennDerFehlerPassiert()
}finally {
	wirdAuchAufgerufenWennImCatchBlockEinReturnSteht()
}
Msgbox wird auch sowieso aufgerufen

wasAuchImmerDenFehlerVerursacht() {
	throw exception( "Fail", -1 )
}

wirdAufgerufenWennDerFehlerPassiert() {
	Msgbox Fehler passiert
}
wirdAuchAufgerufenWennImCatchBlockEinReturnSteht() {
	Msgbox wird sowieso aufgerufen
}

WinHttp.WinHttpRequest Fehlermeldung

Post by effel » 15 Feb 2018, 06:39

hallo ahk gemeinde,
ich nutze statt UrlDownloadToFile eine ...ToVar variante. meine internetverbindung ist ab und zu schlecht bis nicht vorhanden, weil ich meine daten via hotspot vom handy bekomme.

die fehlermeldung klicke ich mit folgendem extra laufenden script immer erfolgreich weg.

meine frage lautet nun, ob ich im script evt. diese fehlermeldung (errorcode?) vorher auffangen kann, sodass sie erst garnicht erscheint, anstatt sie weg zu klicken
start:
WinWait, anzeigenbörse.ahk, Error: 0x800
IfWinNotActive, anzeigenbörse.ahk, Error: 0x800, WinActivate, anzeigenbörse.ahk, Error: 0x800
WinWaitActive, anzeigenbörse.ahk, Error: 0x800
Send, {ENTER}
sleep, 1000
goto start

Code: Select all

---------------------------
anzeigenbörse.ahk
---------------------------
Error:  0x80072EE2 - 
Source:		WinHttp.WinHttpRequest
Description:	Das Zeitlimit für den Vorgang wurde erreicht.


HelpFile:		(null)
HelpContext:	0

Specifically: WaitForResponse

	Line#
	042: Sleep,1000
	043: ToolTip
	044: Goto,start
	045: }
	048: whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
	049: whr.Open("GET", "https://www.suchwebseite.de", true)  
	050: whr.Send()  
--->	051: whr.WaitForResponse()  
	052: needle_2 := whr.ResponseText
	055: needle_1 = <div class="field field--name-title-field field--type-text field--label-hidden"><div class="field-items"><div class="field-item even"><a
	056: Loop,parse,needle_2,
,

	057: if RegExMatch(A_LoopField, needle_1 . "(.*)")  
	058: needle_3 .= A_LoopField . "

"  
	059: ergebnis_01 = <div class="field field--name-title-field field--type-text field--label-hidden"><div class="field-items"><div class="field-item even"><a href="
	060: ersetzen_01 = https://www.suchwebseite.de

Continue running the script?
---------------------------
Ja   Nein   
---------------------------

Top