嗨!我试着做DHL快递,但我被DHL赶上了很多,而DHL并不是真的想帮忙。所以我想寻求帮助。而且,由于我没有得到任何底层XML的跟踪数字,所以我想寻求帮助。非常感谢你帮助我。我尝试的是:
// The url of the service
$url = 'https://wsbexpress.dhl.com:443/sndpt/expressRateBook?WSDL';
// the soap operation which is called
$action = 'createShipmentRequest';
// the xml input of the service
$xmlrequest = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rat="http://scxgxtt.phx-dc.dhl.com/euExpressRateBook/RateMsgRequest">
<soapenv:Header>
<wsse:Security soapenv:mustunderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:id="UsernameToken-5" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>*********</wsse:Username>
<wsse:Password type="PasswordText">*******</wsse:Password>
<wsse:Nonce encodingtype="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">eUYebYfsjztETJ4Urt8AJw==</wsse:Nonce>
<wsu:Created>' . date('Y-m-d H:i:s') . '</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
<soapenv:Header/>
<soapenv:Body>
<rat:RateRequest>
<RequestedShipment>
<DropOffType>REGULAR_PICKUP</DropOffType>
<Account>407194546</Account>
<Currency>EUR</Currency>
<UnitOfMeasurement>SI</UnitOfMeasurement>
<Ship>
<Shipper>
<StreetLines>Street number 22</StreetLines>
<City>City</City>
<PostalCode>111111</PostalCode>
<CountryCode>DE</CountryCode>
</Shipper>
<Recipient>
<StreetLines>Street number 22</StreetLines>
<City>City</City>
<PostalCode>111111</PostalCode>
<CountryCode>DE</CountryCode>
</Recipient>
</Ship>
<Packages>
<RequestedPackages number="1">
<Weight>
<Value>0.5</Value>
</Weight>
<Dimensions>
<Length>3</Length>
<Width>2</Width>
<Height>1</Height>
</Dimensions>
</RequestedPackages>
</Packages>
<ShipTimestamp>2018-07-18T08:00:00 GMT+0100</ShipTimestamp>
<Content>NON_DOCUMENTS</Content>
<PaymentInfo>DAP</PaymentInfo>
</RequestedShipment>
</rat:RateRequest>
</soapenv:Body>
</soapenv:Envelope>';
try {
// the soap client accepts options, we specify the soap version
// The trace option enables tracing of request so faults can be backtraced.
// The exceptions option is a boolean value defining whether soap errors throw exceptions of type SoapFault.
$opts = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$options = array(
'encoding' => 'UTF-8',
'verifypeer' => false,
'verifyhost' => false,
'soap_version' => SOAP_1_2,
'trace' => 1,
'exceptions' => 1,
'connection_timeout' => 180,
'stream_context' => stream_context_create($opts),
'cache_wsdl' => WSDL_CACHE_NONE,
);
// create the soapclient and invoke __doRequest method
$client = new SoapClient($url, $options);
$output = $client->__doRequest($xmlrequest, $url, $action, 1);
} catch (SoapFault $fault) {
echo "<h2>SOAP Fault!</h2><p>";
echo "FaultCode: {$fault->faultcode} <br/>";
echo "FaultString: {$fault->faultstring} <br/>";
echo"</p/>";
}
echo "<h2>WSDL URL: </h2><p>";
echo $url;
echo "</p/>";
echo "<h2>Action: </h2><p>";
echo $action;
echo "</p/>";
echo "<h2>XMLRequest: </h2><p>";
echo $xmlrequest;
echo "</p/>";
if (!isset($output)) {
echo "<h2>SOAP Fault!</h2><p>";
echo "FaultCode: {$output->faultcode} <br/>";
echo "FaultString: {$output->faultstring} <br/>";
} else {
echo "<h2>Output: </h2><p>";
file_put_contents('dhl.xml', $output);
echo $output;
echo "</p/>";
}
返回:https://justpaste.it/52zqa(抱歉太久)
问题是我能得到什么来得到这个xml?不返回装运号并返回相应数据
我认为您正在获得一个WSDL,因为您的URL正在请求它。尝试删除?WSDL
:
$url = 'https://wsbexpress.dhl.com:443/sndpt/expressRateBook';
参考文献:
>
SOAP请求返回了wsdl,而不是预期的SOAP响应
问题内容: 我有一个由Jetty驱动的网站。 我想使网站密码受保护(或类似)。 有没有一种方法可以通过单独配置来实现(无需触摸代码)。 所有帮助,不胜感激。 担 问题答案: 一种方法是通过为应用程序设置基本身份验证。仅当您使用ssl时才应执行此操作,但是没有ssl的登录仍然不安全,因此我想您已经拥有了。 在Jetty中有很多方法可以做到这一点,但这只是其中之一。 首先,您必须定义一个领域,在其中定
Here are the articles in this section:跨站脚本跨站请求伪造
网络安全目前包括WAF策略。 WAF策略 WAF策略用于为Web应用提供集中式保护,使其免受常见攻击和漏洞的侵害。
攻击方式 主动攻击 包括篡改数据流或伪造数据流,这种攻击试图改变系统资源或影响系统运行。 被动攻击 对信息的保密性进行攻击,即通过窃听网络上传输的信息并加以分析从而获得有价值的情报,但它并不修改信息的内容。它的目标是获得正在传送的信息,其特点是偷听或监视信息的传递。被动攻击只对信息进行监听,不对其进行修改。被动攻击包括信息内容泄露和业务流分析2大类 病毒类型 文件型 感染可执行文件,包括EXE和C
网络服务提供弹性公网IP、NAT网关、DNS解析等功能。 弹性公网IP 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。 NAT网关 NAT网关能够为公有云VPC网络中虚拟机提供IP地址转换功能,使虚拟机可以访问外网或提供互联网服务。 DNS解析 DNS解析用于将简单好记的域名解析为计算机用于通信
问题内容: 我正在使用AngularJS构建Web应用程序。该应用需要轮询返回JSON数据的URL,并使该数据可用于该应用的任何部分。从到目前为止的内容看,我最好的选择是创建一个处理轮询并保留其内部JSON数据内部缓存的服务,然后将该服务注入要查询该数据的应用程序的任何部分。我迷失的是如何实际去做。我找到的最接近的示例是这个问题,但它似乎是在创建一个由特定控制器手动调用的服务(它本身已绑定到给定的