我有一个ASP.NET MVC Web API,我需要使用Delphi 6调用它。我正在尝试使用Indy组件(版本9.0.18),我正在使用TIdHttp组件。
我正在使用REST方法,如POST添加,PUT更新和DELETE删除记录。我成功添加,更新和获取记录,但我无法成功调用DELETE方法。它引发了一个错误“HTTP / 1.1 400 Bad Request”。
我尝试调试Web API,但它认为请求没有到来,因为它不会在断点处停止。
我使用的Indy版本没有方法DELETE,所以我尝试使用DoRequest方法。
我的代码:
IdHTTP.DoRequest(hmDelete, 'http://localhost/myapp/api/user/1', nil, nil);
如果我使用Fiddler发出请求,那么它可以工作,所以我的Web API运行良好。
答案 0 :(得分:1)
作为Indy的替代品,我建议您使用"导入类型库..."从项目菜单中选择" Microsoft XML",可用的最高版本(我目前在机器上有版本3到6)。禁用"生成组件包装器",然后使用XMLHTTP
组件进行REST调用。 E.g:
uses ActiveX, MSXML2_TLB;
var
r:XMLHTTP;
begin
CoInitialize(nil);
r:=CoXMLHTTP.Create;
r.open('DELETE','http://localhost/myapp/api/user/1',false,'','');
//r.setRequestHeader(...
r.send(EmptyParam);
if r.status=200 then