微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Delphi 6中从Microsoft XML CoXMLHTTP60响应中获取属性?

如何解决如何在Delphi 6中从Microsoft XML CoXMLHTTP60响应中获取属性?

我正在尝试使用Delphi 6连接到REST Web服务。我已经可以使用以下代码成功完成此操作:

function WSConnect(url: WideString; params: TStringList = nil; method: WideString = 'GET'):WideString;
var
    request: XMLHTTP60;
begin
    // createqueryString below just adds any params passed in to the end of the url
    url := url + createqueryString(params); 

    CoInitialize(nil);
    request := CoXMLHTTP60.Create;
    request.open(method,url,false,'','');

    request.send('');

    if request.status=200 then
    begin
        Result := request.responseText;
    end else
        Result := 'Error: (' + inttostr(request.Status) + ') ' + request.StatusText;
    
    CoUninitialize();
end;

我从网上的不同示例中整理了这段代码,但是找不到关于CoXMLHTTP60的文档。该代码可以很好地运行,但是当前的实现只给了我一个带有JSON响应的字符串,而我正在努力寻找如何在Delphi 6中从该JSON字符串中提取属性。 {3}}(有人说它在Delphi 6中有问题,所以我没有尝试过)和另一个名为SuperObjects的项目,尽管它说它是兼容的,但我无法在Delphi 6中进行编译。 / p>

我相信CoXMLHTTP60响应对象上还有其他属性,这些属性可能会为我提供所需的值。他们是:

request.responseBody: OleVariant;
request.responseStream: OleVariant;
request.responseXML: Idispatch;

我认为其中之一可以提供对JSON中属性的访问,但我不知道该如何使用它们。我对Idispatch非常不熟悉,再次很难找到文档,那里的内容看起来很混乱。某些地方说只将Idispatch属性分配给OleVariant,然后我就可以直接用点表示法访问该属性,但这对我来说似乎也不起作用,所以也许我做错了。

有人知道如何在CoXMLHTTP60调用提取响应属性吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。