@@ -2188,24 +2188,13 @@ Func __WinHttpFormSend($hInternet, $sMethod, $sAction, $fMultiPart, $sBoundary,
2188
2188
If $sAdditionalHeaders Then _WinHttpAddRequestHeaders($hRequest , $sAdditionalHeaders , BitOR ($WINHTTP_ADDREQ_FLAG_REPLACE , $WINHTTP_ADDREQ_FLAG_ADD ))
2189
2189
_WinHttpSetOption($hRequest , $WINHTTP_OPTION_DECOMPRESSION , $WINHTTP_DECOMPRESSION_FLAG_ALL )
2190
2190
_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 )
2203
2192
_WinHttpReceiveResponse($hRequest )
2204
- __WinHttpSetCredentials($hRequest , " " , $sAddData , $sCredName , $sCredPass )
2193
+ __WinHttpSetCredentials($hRequest , " " , $sAddData , $sCredName , $sCredPass , 1 )
2205
2194
Return $hRequest
2206
2195
EndFunc
2207
2196
2208
- Func __WinHttpSetCredentials($hRequest , $sHeaders = " " , $sOptional = " " , $sCredName = " " , $sCredPass = " " )
2197
+ Func __WinHttpSetCredentials($hRequest , $sHeaders = " " , $sOptional = " " , $sCredName = " " , $sCredPass = " " , $iFormFill = 0 )
2209
2198
If $sCredName And $sCredPass Then
2210
2199
Local $iStatusCode = _WinHttpQueryHeaders($hRequest , $WINHTTP_QUERY_STATUS_CODE )
2211
2200
; Check status code
@@ -2222,14 +2211,33 @@ Func __WinHttpSetCredentials($hRequest, $sHeaders = "", $sOptional = "", $sCredN
2222
2211
_WinHttpSetCredentials($hRequest , $iAuthTarget , $iFirstScheme , $sCredName , $sCredPass )
2223
2212
EndIf
2224
2213
; 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
2226
2219
; And wait for the response again
2227
2220
_WinHttpReceiveResponse($hRequest )
2228
2221
EndIf
2229
2222
EndIf
2230
2223
EndIf
2231
2224
EndFunc
2232
2225
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
+
2233
2241
Func __WinHttpDefault(ByRef $vInput , $vOutput )
2234
2242
If $vInput = Default Or Number ($vInput ) = - 1 Then $vInput = $vOutput
2235
2243
EndFunc
0 commit comments