Tôi đang cố gắng thực hiện Yêu cầu HTTP từ Delphi bằng cách sử dụng các chức năng WinInet.Cách gửi Yêu cầu POST HTTP trong Delphi bằng cách sử dụng WinInet api
Cho đến nay tôi có:
function request:string;
var
hNet,hURL,hRequest: HINTERNET;
begin
hNet := InternetOpen(PChar('User Agent'),INTERNET_OPEN_TYPE_PRECONFIG or INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hNet) then
begin
try
hURL := InternetConnect(hNet,PChar('http://example.com'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,DWORD(0));
if(hURL<>nil) then
hRequest := HttpOpenRequest(hURL, 'POST', PChar('param=value'),'HTTP/1.0',PChar(''), nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_PRAGMA_NOCACHE,0);
if(hRequest<>nil) then
HttpSendRequest(hRequest, nil, 0, nil, 0);
InternetCloseHandle(hNet);
except
on E : Exception do
ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
end;
end
end;
Nhưng điều này không làm bất cứ điều gì (Tôi sniffing giao thông http mạng để xem nếu nó hoạt động). Tôi đã sử dụng thành công InternetOpenURL nhưng tôi cũng cần gửi yêu cầu POST và chức năng đó không thực hiện điều đó.
Ai đó có thể chỉ cho tôi một ví dụ đơn giản? Kết quả tôi muốn là để có được trang phản hồi http trong một var như chuỗi.
Tôi tìm thấy nguồn mã của bạn cho bạn để bạn có thể trích dẫn tác giả gốc. Tôi đã thay đổi mã để loại bỏ các câu lệnh trường hợp Boolean không được hình thành, và tôi đã thay đổi liên kết giới thiệu để nó không nói dối và tuyên bố là Firefox 3.0.10. –
Tôi không thể tìm thấy đơn vị nào chứa ParseURL hoặc có thể là một thường trình tùy chỉnh của nó. Mã tại: http://delphi.pastebin.com/f1ea3a752 hơi khác và doen't sử dụng ParseURL. – lkessler
Bạn sẽ thêm giá trị tiêu đề tùy chỉnh vào yêu cầu bài đăng như thế nào? – hikari