J
jiichen
Unregistered / Unconfirmed
GUEST, unregistred user!
目標網頁上有一個 Form
現在我不想要 WebBrowser 先讀取此頁再 post,
而是要直接就 post data 到目標。
由於我不會使用 WebBrowser 直接 Post Data
所以,改用一個折衷的方式,先使用
HttpClient 的 post method
再利用 webbrowser.LoadFromStream(DataIn);
雖然成功,但發現一個問題,在 webbrowser 可看見其
回應的內容,但只有文字,同時在連結部分都失敗了,
如有一個連結指向 './index1.htm' ,原本使用瀏覽器看
應該是指向 'http://www.somesite.com/index1.htm'
但在此例子中卻變成 'about:blank/index1.htm'
我想圖形顯示不出也是因為這樣,
有何辦法可讓其底層網址指向正常 URL。
ps: 如果有使用 WebBrowser 直接 Post 資料的方式請一併
談論,價錢可另議! ^_^
DataIn := TMemoryStream.Create; { For the response }
DataOut := TMemoryStream.Create; { For the data to be sent }
try
Buf := POstData;
{ Write the data to the stream which will be used to send }
DataOut.Write(Buf[1], Length(Buf));
{ Position the stream at the beginning or nothing will be sent }
DataOut.Seek(0, soFromBeginning);
{ Setup the HTTP component to transmit }
http1.Reference:=refer;
http1.SendStream := DataOut;
http1.RcvdStream := DataIn;
Http1.URL := url;
try
http1.Post;
{ Data sent, copy the webserver response to the DisplayMemo }
web.AssignDocument;
web.LoadFromStream(DataIn);
except
{ An error occured ! }
end;
finally
DataOut.Free;
DataIn.Free;
end;
現在我不想要 WebBrowser 先讀取此頁再 post,
而是要直接就 post data 到目標。
由於我不會使用 WebBrowser 直接 Post Data
所以,改用一個折衷的方式,先使用
HttpClient 的 post method
再利用 webbrowser.LoadFromStream(DataIn);
雖然成功,但發現一個問題,在 webbrowser 可看見其
回應的內容,但只有文字,同時在連結部分都失敗了,
如有一個連結指向 './index1.htm' ,原本使用瀏覽器看
應該是指向 'http://www.somesite.com/index1.htm'
但在此例子中卻變成 'about:blank/index1.htm'
我想圖形顯示不出也是因為這樣,
有何辦法可讓其底層網址指向正常 URL。
ps: 如果有使用 WebBrowser 直接 Post 資料的方式請一併
談論,價錢可另議! ^_^
DataIn := TMemoryStream.Create; { For the response }
DataOut := TMemoryStream.Create; { For the data to be sent }
try
Buf := POstData;
{ Write the data to the stream which will be used to send }
DataOut.Write(Buf[1], Length(Buf));
{ Position the stream at the beginning or nothing will be sent }
DataOut.Seek(0, soFromBeginning);
{ Setup the HTTP component to transmit }
http1.Reference:=refer;
http1.SendStream := DataOut;
http1.RcvdStream := DataIn;
Http1.URL := url;
try
http1.Post;
{ Data sent, copy the webserver response to the DisplayMemo }
web.AssignDocument;
web.LoadFromStream(DataIn);
except
{ An error occured ! }
end;
finally
DataOut.Free;
DataIn.Free;
end;