MASM InternetOpenUrl/InternetReadFile获取输出
问题描述:
我从我的应用程序发送一些数据到一个可能在屏幕上打印3种不同的东西的PHP文件(如果我在浏览器中打开它),我会发送一些东西给我的URL像这样:MASM InternetOpenUrl/InternetReadFile获取输出
sendtourl PROC
_loop:
invoke lstrcpy,addr _urlTmp ,addr _url
invoke lstrcat, addr _urlTmp , addr lpszNumber ;----- add parameter to url
invoke InternetOpen,addr _agent, 0 ,0,0,0 ;----- specify user agent
test eax,eax
jz _exit
mov [InternetHandle],eax
invoke InternetOpenUrl, InternetHandle,ADDR _urlTmp, 0 ,0,0, 0 ;----- open URL
test eax,eax
jz _exit
mov [FileHandle],eax
invoke InternetReadFile,FileHandle,addr FileBuffer,1023, addr BytesRead
test eax,eax
jz _exit
mov eax,[BytesRead]
mov b[FileBuffer+eax],0
; invoke Sleep,600000
invoke InternetCloseHandle, [FileHandle]
invoke InternetCloseHandle, [InternetHandle]
ret
_exit:
invoke InternetCloseHandle,[FileHandle]
invoke InternetCloseHandle,[InternetHandle]
;;invoke ExitProcess,0
;-----
ret
sendtourl ENDP
现在可能有1 3的事情取决于什么被送到网址印:是的,不,也许
是否有可能借此输出,并把它放回一些变量在我的应用程序,所以我可以重复使用它,例如:
- 输出是肯定=无能为力
- 输出无=关闭应用
- 产量也许=做别的事情
发送部分工作正常,我只是想不通我怎么能得到响应 ?
答
来自网页的回复应该在FileBuffer
。因为它是文本,所以您必须解析缓冲区中的响应内容,跳过响应标题,并隔离您正在查找的文本,然后将其与ASCII字符值进行比较以确定它是什么(或使用来自其中一个MASM库的字符串/字符比较功能)。
听起来很复杂,我刚刚开始:(..有没有更简单的方法,也许就像获得响应的大小,例如在响应中放置垃圾文本,所以它等于1kb是的,2kb是否3kb可能还是其他的东西? –
仅供参考并查看FileBuffer中的实际内容,不应调用MessageBox,NULL,addr FileBuffer,addr FileBuffer,MB_OK'输出任何内容?消息框仅为空白 –
With有一点摆弄,我终于得到了我想要的文字,谢谢:) –