2011-09-29 30 views
1

我試着將http.h移植​​到Delphi,但是我對HttpSendHttpResponse的調用返回'invalid patameter',我不知道爲什麼。httpapi:爲什麼HttpSendHttpResponse返回無效參數?

我現在堅持使用HTTPAPI_V1,並在WinXP上進行測試。我發佈了源代碼,我用它來測試這裏: http://nldelphi.com/Forum/showthread.php?t=37904

+1

請在此處發佈您的實際代碼。只有一個外部鏈接到代碼,這個問題是不是真的可以搜索,如果外部網站在未來(或離開),這個問題已經不再可用了。此外,期待你要求免費幫助的人去加載另一個網站這樣做的額外麻煩並不是很好。 :) 謝謝。 –

回答

2

我有一些問題,它的明顯問題是數據類型的對齊規則。將以下內容添加到單元以驗證您的數據結構:

initialization 
    {$if sizeof(HTTP_REQUEST   ) <> 464}{$message error 'HTTP_REQUEST   sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_RESPONSE  ) <> 280}{$message error 'HTTP_RESPONSE   sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_COOKED_URL  ) <> 24}{$message error 'HTTP_COOKED_URL  sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_DATA_CHUNK  ) <> 32}{$message error 'HTTP_DATA_CHUNK  sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_REQUEST_HEADERS ) <> 344}{$message error 'HTTP_REQUEST_HEADERS sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_RESPONSE_HEADERS) <> 256}{$message error 'HTTP_RESPONSE_HEADERS sizeof error.'}{$ifend} 
    {$if sizeof(HTTP_SSL_INFO  ) <> 28}{$message error 'HTTP_SSL_INFO   sizeof error.'}{$ifend} 
+0

注:如果你有興趣,我可以發佈我在這裏(工作!)的代碼的端口,但單位是大約1000行代碼... –

+0

我放棄了'打包'的記錄,它得到了對齊正確(HTTP_SSL_INFO除外,僅在HTTPAPI v2中引入),但它仍然返回無效參數錯誤代碼。 –

+0

確實,對齊是問題。我必須添加{$ A8} {$ Z4}並完全重寫HTTP_DATA_CHUNK。感謝您指點我正確的方向! –