MASM InternetOpenUrl / InternetReadFile获取输出

时间:2013-10-19 13:31:10

标签: assembly masm masm32

我正在将我的应用程序中的一些数据发送到一个php文件,这个文件可能会在屏幕上打印3个不同的东西(如果我在浏览器中打开它),我会发送一些内容到我的URL:

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

现在根据发送到网址的内容可能会打印出3件事中的1件:是,否,可能

是否可以将此输出并将其放回我的应用程序中的某个变量中,以便我可以重复使用它,例如:

  • 输出是=无所事事
  • 输出为否=关闭申请
  • 输出可能是=做别的事情

发送部分工作正常,我无法弄清楚如何才能得到回复?

1 个答案:

答案 0 :(得分:0)

网页的回复应位于FileBuffer。由于它是文本,您必须解析缓冲区中的响应内容,跳过响应标头,并隔离出您要查找的文本,然后将其与ASCII字符值进行比较以确定它是什么(或使用来自其中一个MASM库的字符串/字符比较函数。)