Skip to content

Commit a913516

Browse files
committed
Changed: Implementation details for _WinHttpSimpleFormFill_SetCallback (see rev196).
1 parent f2a14be commit a913516

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

WinHttp.au3

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2188,24 +2188,13 @@ Func __WinHttpFormSend($hInternet, $sMethod, $sAction, $fMultiPart, $sBoundary,
21882188
If $sAdditionalHeaders Then _WinHttpAddRequestHeaders($hRequest, $sAdditionalHeaders, BitOR($WINHTTP_ADDREQ_FLAG_REPLACE, $WINHTTP_ADDREQ_FLAG_ADD))
21892189
_WinHttpSetOption($hRequest, $WINHTTP_OPTION_DECOMPRESSION, $WINHTTP_DECOMPRESSION_FLAG_ALL)
21902190
_WinHttpSetOption($hRequest, $WINHTTP_OPTION_UNSAFE_HEADER_PARSING, 1)
2191-
Local $aClbk = _WinHttpSimpleFormFill_SetCallback()
2192-
If $aClbk[0] <> Default Then
2193-
Local $iSize = StringLen($sAddData), $iChunk = Floor($iSize / $aClbk[1]), $iRest = $iSize - ($aClbk[1] - 1) * $iChunk, $iCurCh = $iChunk
2194-
_WinHttpSendRequest($hRequest, Default, Default, $iSize)
2195-
For $i = 1 To $aClbk[1]
2196-
If $i = $aClbk[1] Then $iCurCh = $iRest
2197-
_WinHttpWriteData($hRequest, StringMid($sAddData, 1 + $iChunk * ($i -1), $iCurCh))
2198-
Call($aClbk[0], Floor($i * 100 / $aClbk[1]))
2199-
Next
2200-
Else
2201-
_WinHttpSendRequest($hRequest, Default, $sAddData)
2202-
EndIf
2191+
__WinHttpFormUpload($hRequest, "", $sAddData)
22032192
_WinHttpReceiveResponse($hRequest)
2204-
__WinHttpSetCredentials($hRequest, "", $sAddData, $sCredName, $sCredPass)
2193+
__WinHttpSetCredentials($hRequest, "", $sAddData, $sCredName, $sCredPass, 1)
22052194
Return $hRequest
22062195
EndFunc
22072196

2208-
Func __WinHttpSetCredentials($hRequest, $sHeaders = "", $sOptional = "", $sCredName = "", $sCredPass = "")
2197+
Func __WinHttpSetCredentials($hRequest, $sHeaders = "", $sOptional = "", $sCredName = "", $sCredPass = "", $iFormFill = 0)
22092198
If $sCredName And $sCredPass Then
22102199
Local $iStatusCode = _WinHttpQueryHeaders($hRequest, $WINHTTP_QUERY_STATUS_CODE)
22112200
; Check status code
@@ -2222,14 +2211,33 @@ Func __WinHttpSetCredentials($hRequest, $sHeaders = "", $sOptional = "", $sCredN
22222211
_WinHttpSetCredentials($hRequest, $iAuthTarget, $iFirstScheme, $sCredName, $sCredPass)
22232212
EndIf
22242213
; Send request again now
2225-
_WinHttpSendRequest($hRequest, $sHeaders, $sOptional)
2214+
If $iFormFill Then
2215+
__WinHttpFormUpload($hRequest, $sHeaders, $sOptional)
2216+
Else
2217+
_WinHttpSendRequest($hRequest, $sHeaders, $sOptional)
2218+
EndIf
22262219
; And wait for the response again
22272220
_WinHttpReceiveResponse($hRequest)
22282221
EndIf
22292222
EndIf
22302223
EndIf
22312224
EndFunc
22322225

2226+
Func __WinHttpFormUpload($hRequest, $sHeaders, $sData)
2227+
Local $aClbk = _WinHttpSimpleFormFill_SetCallback()
2228+
If $aClbk[0] <> Default Then
2229+
Local $iSize = StringLen($sData), $iChunk = Floor($iSize / $aClbk[1]), $iRest = $iSize - ($aClbk[1] - 1) * $iChunk, $iCurCh = $iChunk
2230+
_WinHttpSendRequest($hRequest, Default, Default, $iSize)
2231+
For $i = 1 To $aClbk[1]
2232+
If $i = $aClbk[1] Then $iCurCh = $iRest
2233+
_WinHttpWriteData($hRequest, StringMid($sData, 1 + $iChunk * ($i -1), $iCurCh))
2234+
Call($aClbk[0], Floor($i * 100 / $aClbk[1]))
2235+
Next
2236+
Else
2237+
_WinHttpSendRequest($hRequest, Default, $sData)
2238+
EndIf
2239+
EndFunc
2240+
22332241
Func __WinHttpDefault(ByRef $vInput, $vOutput)
22342242
If $vInput = Default Or Number($vInput) = -1 Then $vInput = $vOutput
22352243
EndFunc

0 commit comments

Comments
 (0)