J'ai un petit problème avec WinHTTP.
J'arrive à me connecter en https avec mon certif tout dégueu (en acceptant les certifs dégueus) mais j'ai une erreur quand j'essaye de recevoir la réponse..
Quelqu'un à une idée?
► Afficher le texteCode
Code : Tout sélectionner
#include"WinHttp.au3"
;https://208.69.230.50/getHavaIp?hava_name=vgm
$LocalIP = "IP du serveur web"
$hw_open = _WinHttpOpen()
$hw_connect = _WinHttpConnect($hw_open, $LocalIP,$INTERNET_DEFAULT_HTTPS_PORT)
If @error Then
MsgBox (0, "Erreur", "Erreur à la connexion.")
EndIf
$h_openRequest = _WinHttpOpenRequest($hw_connect, "GET", "","","","",$WINHTTP_FLAG_SECURE)
If @error Then
MsgBox (0, "Erreur", "Erreur à l'ouverture de la requête")
EndIf
$allow_unknownCA_wrongCN = BitOR($SECURITY_FLAG_IGNORE_UNKNOWN_CA, $SECURITY_FLAG_IGNORE_CERT_CN_INVALID)
$r = _WinHttpSetOptionEx($h_openRequest, $WINHTTP_OPTION_SECURITY_FLAGS, $allow_unknownCA_wrongCN)
If @error Then
MsgBox (0, "Erreur", "Erreur à la configuration des options")
EndIf
$req = _WinHttpSendRequest($h_openRequest) ; send request
If @error Then
MsgBox (0, "Erreur", "Erreur à la requête")
EndIf
_WinHttpReceiveResponse($h_openRequest) ; wait for response
If @error Then
MsgBox (0, "Erreur", "Erreur à la reponse")
EndIf
$sHeaders = _WinHttpQueryHeaders($h_openRequest)
If @error Then
MsgBox (0, "Erreur", "Erreur à la tête de message")
EndIf
$sData = ""
If _WinHTTPQueryDataAvailable($h_openRequest) Then
Do
ConsoleWrite("lel")
$sData &= _WinHttpReadData($h_openRequest)
Until @error<>0
EndIf
_WinHttpCloseHandle($h_openRequest)
_WinHttpCloseHandle($hw_connect)
_WinHttpCloseHandle($hw_open)
MsgBox(0, 'Header', $sHeaders)
MsgBox(0, 'Data', $sData)
; #FUNCTION# ;===============================================================================
;
; Name...........: _WinHttpSetOptionEx
; Description ...: Sets an Internet option.
; Syntax.........: _WinHttpSetOption($hInternet, $iOption, $sSetting)
; Parameters ....: $hInternet - Handle on which to set data.
; $iOption - Integer value that contains the Internet option to set.
; $vSetting - Value of setting
; $iSize - [optional] Size of $vSetting, required if $vSetting is pointer to memory block
; Return values .: Success - Returns 1.
; Failure - Returns 0 and sets @error:
; |1 - DllCall failed.
; Author ........: trancexx, ProgAndy
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; http://msdn.microsoft.com/en-us/library/aa384114(VS.85).aspx
; Example .......; Yes
;
;==========================================================================================
Func _WinHttpSetOptionEx($hInternet, $iOption, $vSetting, $iSize=-1)
If IsBinary($vSetting) Then
$iSize = DllStructCreate("byte[" & BinaryLen($vSetting) & "]")
DllStructSetData($iSize, 1, $vSetting)
$vSetting = $iSize
$iSize = DllStructGetSize($vSetting)
EndIf
Local $sType = __WinHTTPGetOptionType($iOption, $iSize)
If $iSize < 1 Then
If $sType = "wstr" Then
$iSize = StringLen($sType)
ElseIf IsDllStruct($vSetting) Then
$iSize = DllStructGetSize($vSetting)
Else
Return SetError(2,0,0)
EndIf
EndIf
If IsDllStruct($vSetting) Then
Local $a_iCall = DllCall("winhttp.dll", "int", "WinHttpSetOption", "handle", $hInternet, "dword", $iOption, $sType, DllStructGetPtr($vSetting), "dword", $iSize)
Else
Local $a_iCall = DllCall("winhttp.dll", "int", "WinHttpSetOption", "handle", $hInternet, "dword", $iOption, $sType, $vSetting, "dword", $iSize)
EndIf
If @error Or Not $a_iCall[0] Then Return SetError(1, 0, 0)
Return SetError(0, 0, 1)
EndFunc ;==>_WinHttpSetOptionEx
Func __WinHTTPGetOptionType($iOption, ByRef $iSize)
; Author: ProgAndy
Switch $iOption
Case $WINHTTP_OPTION_AUTOLOGON_POLICY, $WINHTTP_OPTION_CODEPAGE, $WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH, $WINHTTP_OPTION_CONNECT_RETRIES, _
$WINHTTP_OPTION_CONNECT_TIMEOUT, $WINHTTP_OPTION_DISABLE_FEATURE, $WINHTTP_OPTION_ENABLE_FEATURE, $WINHTTP_OPTION_ENABLETRACING, _
$WINHTTP_OPTION_EXTENDED_ERROR, $WINHTTP_OPTION_HANDLE_TYPE, _
$WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER, $WINHTTP_OPTION_MAX_CONNS_PER_SERVER, $WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS, _
$WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE, $WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE, $WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE, _
$WINHTTP_OPTION_READ_BUFFER_SIZE, $WINHTTP_OPTION_RECEIVE_TIMEOUT, _
$WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT, $WINHTTP_OPTION_REDIRECT_POLICY, $WINHTTP_OPTION_REJECT_USERPWD_IN_URL, _
$WINHTTP_OPTION_REQUEST_PRIORITY, $WINHTTP_OPTION_RESOLVE_TIMEOUT, $WINHTTP_OPTION_SECURE_PROTOCOLS, $WINHTTP_OPTION_SECURITY_FLAGS, _
$WINHTTP_OPTION_SECURITY_KEY_BITNESS, $WINHTTP_OPTION_SEND_TIMEOUT, $WINHTTP_OPTION_SPN, $WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS, _
$WINHTTP_OPTION_WORKER_THREAD_COUNT, $WINHTTP_OPTION_WRITE_BUFFER_SIZE
$sType = "DWORD*"
$iSize = 4
Case $WINHTTP_OPTION_CALLBACK, $WINHTTP_OPTION_PARENT_HANDLE, $WINHTTP_OPTION_PASSPORT_RETURN_URL, $WINHTTP_OPTION_PASSPORT_SIGN_OUT, _
$WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
$sType = "ptr*"
$iSize = 4
If @AutoItX64 Then $iSize = 8
Case $WINHTTP_OPTION_CONTEXT_VALUE
$sType = "dword_ptr*"
$iSize = 4
If @AutoItX64 Then $iSize = 8
Case $WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT, $WINHTTP_OPTION_PASSPORT_COBRANDING_URL, $WINHTTP_OPTION_PASSWORD, $WINHTTP_OPTION_PROXY_PASSWORD, _
$WINHTTP_OPTION_PROXY_USERNAME, $WINHTTP_OPTION_URL, $WINHTTP_OPTION_USER_AGENT, _
$WINHTTP_OPTION_USERNAME
$sType = "wstr"
Case Else
$sType = "ptr"
EndSwitch
Return $sType
EndFunc

