2013-10-19 48 views
0

我從我的應用程序發送一些數據到一個可能在屏幕上打印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的事情取決於什麼被送到網址印:是的,不,也許

是否有可能借此輸出,並把它放回一些變量在我的應用程序,所以我可以重複使用它,例如:

  • 輸出是肯定=無能爲力
  • 輸出無=關閉應用
  • 產量也許=做別的事情

發送部分工作正常,我只是想不通我怎麼能得到響應 ?

回答

0

來自網頁的回覆應該在FileBuffer。因爲它是文本,所以您必須解析緩衝區中的響應內容,跳過響應標題,並隔離您正在查找的文本,然後將其與ASCII字符值進行比較以確定它是什麼(或使用來自其中一個MASM庫的字符串/字符比較功能)。

+0

聽起來很複雜,我剛剛開始:(..有沒有更簡單的方法,也許就像獲得響應的大小,例如在響應中放置垃圾文本,所以它等於1kb是的,2kb是否3kb可能還是其他的東西? –

+0

僅供參考並查看FileBuffer中的實際內容,不應調用MessageBox,NULL,addr FileBuffer,addr FileBuffer,MB_OK'輸出任何內容?消息框僅爲空白 –

+0

With有一點擺弄,我終於得到了我想要的文字,謝謝:) –