0
POST /accountapi/service.asmx HTTP/1.1
Host: staging.prepaidfinancialservices.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://accountapi.internal/CardInquiry"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
    <CardInquiry xmlns="http://accountapi.internal/">
      <sClientLogin>string</sClientLogin>
      <sClientPassword>string</sClientPassword>
      <CardNumber>string</CardNumber>
    </CardInquiry>
  </soap:Body>
</soap:Envelope>

以上是 SOAP 请求,但是当我尝试通过我的 php 代码发布它时,我收到一个错误“无法解析主机 'accountapi.internal”......请帮帮我

<?php
ini_set('display_errors', "1");
$a=fopen("test.xml",'r');
$mxml=fread($a,65536);
$url='http://accountapi.internal/CardInquiry';
$yt =curl_init($url);
$header =   "POST /accountapi/service.asmx HTTP/1.1 <br>";
$header .=  "Host: staging.prepaidfinancialservices.com <br>";
$header .=  "Content-Type: application/soap+xml; charset=utf-8 <br>";
$header .=  "Content-Length: ".strlen($mxml)."\r\n <br>";
$header .=  "SOAPAction: 'http://accountapi.internal/CardInquiry' <br>";
echo $header."<br><br>";
//exit; 


$header .=  $mxml;
curl_setopt($yt, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($yt, CURLOPT_URL, $url);
curl_setopt($yt, CURLOPT_CUSTOMREQUEST, $header);
curl_setopt($yt, CURLOPT_RETURNTRANSFER, true);
$rxml=curl_exec($yt);
echo "sent\n$mxml\n<br>";
echo "received\n$rxml\n"; 
echo curl_error($yt);
 ?>

这是我的php代码....

4

1 回答 1

0

我认为该 urlhttp://accountapi.internal/CardInquiry属于某个 LAN,并且无法公开使用。因此,当您调用此 URL 时,不会为该地址注册任何名称服务器。所以你收到消息“无法解析主机”。尝试输入 IP 地址,我认为它会起作用。

于 2012-06-19T05:18:57.047 回答