公司的SAP項目告一段落了,但用戶指出SAP接口返回的錯誤信息是英文的,看不懂呀。
聽顧問說SAP是支持中文信息的,但是需要在調用接口時傳遞一個額外的header,叫"sap-language:zh"。
遍地google,終於讓我尋着瞭解決的辦法。原來是如此的簡單,但往往復雜的問題都有一個簡單的處理辦法。
$wsdl = "http://xxxx"; $options = array( 'login' => 'TEST', 'password' => '12345', 'trace' => 1, 'stream_context' => stream_context_create(array('http' => array('header' => 'sap-language: zh'))) ); $client = new SoapClient($wsdl, $options);
在php手冊上可以找到soapclient中stream_context的描述。它的原文是:
The stream_context option is a resource for context.
再進一步的去看一下這個context,鏈接是:http://www.php.net/manual/zh/context.php
裏面介紹了stream_context_create()這個函數,用它可以構建各種請求。
所以就有了上面的解決方案。