我已实施以下代码向服务器发送HTTP请求但由于某种原因它无法正常工作(小提琴上没有条目)有人可以提供帮助吗? [编辑]我已将错误处理添加到代码
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
...
[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent
[code]
procedure CurStepChanged(CurStep: TSetupStep);
var
WinHttpReq: Variant;
begin
if CurStep = ssDone then
begin
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('GET', 'http://publishers-x.databssint.com/', false);
WinHttpReq.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
WinHttpReq.Send('cool');
// WinHttpReq.ResponseText will hold the server response
if WinHttpReq.Status <> 200 then
begin
MsgBox(WinHttpReq.Status, mbError, MB_OK);
end
else
begin
MsgBox('SUCCESS', mbInformation, MB_OK);
end;
end;
end;
答案 0 :(得分:3)
任何2xx状态代码都成功。在您的情况下,202表示"accepted"。它故意模糊,但请求确实通过了回复的服务器。
至于为什么它没有在Fiddler中显示,Fiddler处于应用程序级别,并且充当代理而不是数据包监视器。
WinHttpRequest
documentation表示它不使用正常的系统配置代理,而是使用自己的配置或在运行时设置的值。
如果您想使用Fiddler进行测试,请使用Fiddler的详细信息调用SetProxy:
WinHttpReq.SetProxy(2, 'localhost:888');
或者,使用WireShark直接监控网络流量。