使用PHP中的CURL,FOPEN或FILE_GET_CONTENTS获取XML响应

时间:2013-07-24 06:20:03

标签: php xml curl fopen file-get-contents

我想创建一个PHP脚本,它将使用GET方法对https站点执行请求。作为回报,我得到了xml格式的回复。我需要能够获取内容/保存这个xml。

我尝试过使用curl,file_get_contents,fopen但是我收到了错误的请求(400)响应。但是当我尝试直接转到url时,我收到了xml响应。这是我想要回复的网址:

https://tst.webservices.outsurance.co.za/SecureHost/Lead/LeadPostService.svc/SubmitAffiliateLead?xml=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22+%3F%3E%0D%0A%0D%0A%3Clead%3E%0D%0A+++%3Cmode%3ELIVE%3C%2Fmode%3E%0D%0A%09%3Ctitle%3EMrs%3C%2Ftitle%3E%0D%0A%09%3Cfirstname%3EHannah%3C%2Ffirstname%3E%0D%0A%09%3Clastname%3EDwindle%3C%2Flastname%3E%0D%0A%09%3Cid%3E1723658492165%3C%2Fid%3E%0D%0A%09%3Chomecode%3E%3C%2Fhomecode%3E%0D%0A%09%3Chometel%3E%3C%2Fhometel%3E%0D%0A%09%3Cworkcode%3E011%3C%2Fworkcode%3E%0D%0A%09%3Cworktel%3E132189%3C%2Fworktel%3E%0D%0A%09%3Cmobile%3E0824176239%3C%2Fmobile%3E%0D%0A%09%3Cemail%3Ehannahdwindle@gmail.com%3C%2Femail%3E%0D%0A%09%3Ccomment%3ETHIS+IS+A+COMMENT%3C%2Fcomment%3E%0D%0A%09%3Csource%3EUPSTART%3C%2Fsource%3E%0D%0A%09%3Cnotes%3ETHIS+I+A+NOTE%3C%2Fnotes%3E%0D%0A%09%3Clanguage%3EE%3C%2Flanguage%3E%0D%0A%09%3Cproduct%3EP%3C%2Fproduct%3E%0D%0A%3C%2Flead%3E%0D%0A+++++++++

我真的不知道现在该做什么。我已经尝试过我在互联网上看到的所有解决方案,但无济于事。

1 个答案:

答案 0 :(得分:0)

我前一段时间写了this response。它可以帮助您调试传出请求。

看起来您的http客户端正在编写接收应用程序不喜欢的请求。这也可以在应用程序级别上(也许他们只是不喜欢你的变量并返回400级响应)。我见过API实现者这样做。没有什么可以阻止实施者这样做。

我会找出您发送的确切请求(通过我提供的链接),并与API实施者联系,以确保他们期望这种类型的请求。

此外,使用fiddler,您可以制作http请求。但是,制定测试远程API的请求的最佳方法是管理每个字节。您可以使用this method(支持HTTP和HTTPS)来完成此操作。

最后,我写了一个XML wrapper来简化xml修改/查询,如果它对你有帮助的话。