_HTTPOST proc _szHost, _szFileName, _szPostParam
;
; 利用Wininet函数进行Http数据POST发送
;
LOCAL @hropen: DWORD
LOCAL @hrinterc: DWORD
LOCAL @hropenreq: DWORD
pushad
invoke InternetOpen,NULL,0,NULL,NULL,0
cmp eax, NULL
je @QUIT
mov @hropen, eax
invoke InternetConnect,@hropen,_szHost,INTERNET_DEFAULT_HTTP_PORT,NULL,addr szHTTP,INTERNET_SERVICE_HTTP,0,0
cmp eax, NULL
je @QUIT
mov @hrinterc, eax
invoke HttpOpenRequest,@hrinterc,addr szPOST,_szFileName,addr szHTTP,NULL,0,INTERNET_FLAG_RELOAD,0
cmp eax, NULL
je @QUIT
mov @hropenreq, eax
invoke _StrLen,addr szHeaders
mov ebx, eax
invoke HttpAddRequestHeaders,@hropenreq,addr szHeaders,ebx,HTTP_ADDREQ_FLAG_REPLACE Or HTTP_ADDREQ_FLAG_ADD
; 求长牙,这里可以用lstrlen
invoke _StrLen,_szPostParam
mov ebx, eax
invoke HttpSendRequest,@hropenreq,NULL,0,_szPostParam,ebx
invoke InternetCloseHandle,@hropenreq
invoke InternetCloseHandle,@hrinterc
invoke InternetCloseHandle,@hropen
@QUIT:
popad
ret
_HTTPOST endp
上面这个函数在掉用时 第一次可以成功, 第二次掉用时就不发包了.请问是什么回事。
第二次 HttpSendRequest 返回值0 让我想不通
相同的功能在我在Delphi写了一个完全可以掉用N次.为什么这个在Win32汇编里 确不可以多次掉
用,忘求指点.郁闷17个小时了.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课