MASM InternetOpenUrl/InternetReadFile获取输出

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库的字符串/字符比较功能)。

+0

听起来很复杂,我刚刚开始:(..有没有更简单的方法,也许就像获得响应的大小,例如在响应中放置垃圾文本,所以它等于1kb是的,2kb是否3kb可能还是其他的东西? –

+0

仅供参考并查看FileBuffer中的实际内容,不应调用MessageBox,NULL,addr FileBuffer,addr FileBuffer,MB_OK'输出任何内容?消息框仅为空白 –

+0

With有一点摆弄,我终于得到了我想要的文字,谢谢:) –