问题
I have an ASP.NET MVC Web API and I need to call it using Delphi 6. I am trying to use the Indy components (version 9.0.18), I am using the TIdHttp component.
I am using the REST methods, like POST to add, PUT to update and DELETE to delete the records. I got successfully adding, updating and getting my records, but I couldn't get successfully to call the DELETE method. It raises an error "HTTP/1.1 400 Bad Request".
I tried to debug the Web API, but it appers that the request didn't come, cause it doesn't stop in the breakpoint.
The Indy version that I am using doesn't have the method DELETE, so I tried to use the DoRequest method.
My code:
IdHTTP.DoRequest(hmDelete, 'http://localhost/myapp/api/user/1', nil, nil);
If I make the request using Fiddler it works, so my Web API is working well.
回答1:
As an alternative to Indy, I suggest you use "Import Type Library..." from the Project menu, and select "Microsoft XML", the highest version available (I have versions 3 through 6 on the machine I'm currently on). Disable "Generate Component Wrapper", and then use the XMLHTTP
component to make REST calls. 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
来源:https://stackoverflow.com/questions/35441155/calling-rest-web-api-using-delphi