0

我想创建一个 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+++++++++

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

4

1 回答 1

0

我不久前写了这个回复。它可以为您提供调试传出请求的方法。

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

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

此外,使用fiddler,您可以制作 http 请求。但是,编写请求以测试远程 API 的最佳方法是管理每个字节。您可以使用此方法(同时支持 HTTP 和 HTTPS)来做到这一点。

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

于 2013-07-24T06:25:11.543 回答