代码如下:谢谢指教
<?php//php.ini中打开下面3个dll//extension = php_soap.dll
//extension = php_curl.dll
//extension = php_openssl.dll
header("Content-Type: text/html; charset=utf-8");
$client = new SoapClient("http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?wsdl");
//本行测试不可行 $client = new SoapClient(" http://192.168.1.178:808/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//参数这样传递 先包装一下
$param = array('province'=>'北京','city'=>'北京市','district'=>'东城区','asin'=>'B003Q97O2E');
//调用必须用__soapCall
$p = $client->__soapCall('GetASIN',array('parameters' => $param))->getWeatherbyCityNameResult->string;
;
print_r($p->GetASINResult); //这里先输出一下变量$p,看看是什么类型。
?>
<?php
//初始化SoapClient客户端
$client = new SoapClient("http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?wsdl");$param["province"]="北京";
$param["city"]="北京市";
$param["district"]="东城区";
$param["asin"]="B003Q97O2E";
//必须这样调用才能获得结果,至于为什么必须这么调用,我也不知道……
$res=$client->__Call('GetASIN',array('paramters'=>$param));
print_r($res->GetASINResult->anyType);
?>
<?php//php.ini中打开下面3个dll//extension = php_soap.dll
//extension = php_curl.dll
//extension = php_openssl.dll
header("Content-Type: text/html; charset=utf-8");
$client = new SoapClient("http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?wsdl");
//本行测试不可行 $client = new SoapClient(" http://192.168.1.178:808/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//参数这样传递 先包装一下
$param = array('province'=>'北京','city'=>'北京市','district'=>'东城区','asin'=>'B003Q97O2E');
//调用必须用__soapCall
$p = $client->__soapCall('GetASIN',array('parameters' => $param))->getWeatherbyCityNameResult->string;
;
print_r($p->GetASINResult); //这里先输出一下变量$p,看看是什么类型。
?>
<?php
//初始化SoapClient客户端
$client = new SoapClient("http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?wsdl");$param["province"]="北京";
$param["city"]="北京市";
$param["district"]="东城区";
$param["asin"]="B003Q97O2E";
//必须这样调用才能获得结果,至于为什么必须这么调用,我也不知道……
$res=$client->__Call('GetASIN',array('paramters'=>$param));
print_r($res->GetASINResult->anyType);
?>
上面仁兄说的着色,不会的啊
http请求格式在这里:
http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?op=GetASIN
<?php
$p = '北京';
$c = '北京市';
$a = '东城区';
$o = 'B003Q97O2E';
$xml = <<<httpbody
<?xml version="1.0" encoding="gbk"?>
<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>
<GetASIN xmlns="http://tempuri.org/">
<province>{$p}</province>
<city>{$c}</city>
<district>{$a}</district>
<asin>{$o}</asin>
</GetASIN>
</soap:Body>
</soap:Envelope>
httpbody;
$conn = fsockopen("offbaoffba.host027.wwwer.com.cn",80,$errno,$errstr,1);
if(!$conn) die($errstr)."<br/>";//加上连接是否有效判断,就不会一直刷了
fwrite($conn,"POST /AmazonASINInterface.asmx HTTP/1.1 \r\n");//实际上就是将数据POST 到
fwrite($conn,"Host:offbaoffba.host027.wwwer.com.cn\r\n");
fwrite($conn,"Connection:close\r\n");//这里加上会快一些。
fwrite($conn,"Content-type:text/xml;charset=utf-8\r\n");
fwrite($conn,"SOAPAction: \"http://tempuri.org/GetASIN\"\r\n");
fwrite($conn,"Content-length:".strlen($xml)."\r\n\r\n");
fwrite($conn,$xml);
while(!feof($conn))
{
$content .= fgets($conn,128);
}
fclose($conn);
preg_match('#<GetASINResult>(.*?)</GetASINResult>#',$content,$body);
echo $body[1];
/*结果:
*-------------
*可配送至北京北京市东城区。查看其它地址的送达时间如果您希望在明天(3月18日)收到商品,请即刻提交订单,并将送货方式选为快递送货上门-免配送费。
*/
?>
<?php
$p = '北京';
$c = '北京市';
$a = '东城区';
$o = 'B003Q97O2E';
$xml = <<<httpbody
<?xml version="1.0" encoding="gbk"?>
<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>
<GetASIN xmlns="http://tempuri.org/">
<province>{$p}</province>
<city>{$c}</city>
<district>{$a}</district>
<asin>{$o}</asin>
</GetASIN>
</soap:Body>
</soap:Envelope>
httpbody;
$conn = fsockopen("offbaoffba.host027.wwwer.com.cn",80,$errno,$errstr,1);
if(!$conn) die($errstr)."<br/>";//加上连接是否有效判断,就不会一直刷了
fwrite($conn,"POST /AmazonASINInterface.asmx HTTP/1.1 \r\n");//实际上就是将数据POST 到
fwrite($conn,"Host:offbaoffba.host027.wwwer.com.cn\r\n");
fwrite($conn,"Connection:close\r\n");//这里加上会快一些。
fwrite($conn,"Content-type:text/xml;charset=utf-8\r\n");
fwrite($conn,"SOAPAction: \"http://tempuri.org/GetASIN\"\r\n");
fwrite($conn,"Content-length:".strlen($xml)."\r\n\r\n");
fwrite($conn,$xml);
while(!feof($conn))
{
$content .= fgets($conn,128);
}
fclose($conn);
preg_match('#<GetASINResult>(.*?)</GetASINResult>#',$content,$body);
echo $body[1];
/*结果:
*-------------
*可配送至北京北京市东城区。查看其它地址的送达时间如果您希望在明天(3月18日)收到商品,请即刻提交订单,并将送货方式选为快递送货上门-免配送费。
*/
?>
string(392) "可配送至北京北京市东城区。查看其它地址的送达时间如果您希望在明天(3月18日)收到商品,请即刻提交订单,并将送货方式选为快递送货上门-免配送费。 " <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
//初始化SoapClient客户端
$client = new SoapClient("http://offbaoffba.host027.wwwer.com.cn/AmazonASINInterface.asmx?wsdl");$param["province"]="北京";
$param["city"]="北京市";
$param["district"]="东城区";
$param["asin"]="B003Q97O2E";
//必须这样调用才能获得结果,至于为什么必须这么调用,我也不知道……
$res= $client->GetASIN($param);
var_dump($res->GetASINResult);?>
</body>
</html>