2012-03-16 48 views
7

tôi đang cố gắng để có được những yêu cầu XML:tại sao getLastRequest không trả lại bất cứ điều gì?

$cgProxy = new SoapClient($WSDL_URL,array('trace' => 1)); 

try { 
     $result = $cgProxy->OrderCreate($cgOrder); 

} catch (SoapFault $exc) { 
     var_dump($exc); 
     echo "Request:\n" . $cgProxy->__getLastRequest(), "\n"; 
     echo "Response:\n" . $cgProxy->__getLastResponse() . "\n"; 
} 

Với điều này tôi nhận được lỗi máy chủ xà phòng từ các bãi chứa $ exc. Nhưng getLastRequest dường như không trả lại bất cứ điều gì. Có suy nghĩ gì không?

Tôi cũng đã thử với htmlspecialchars() và htmlentities() mà không thành công. . .

+0

Bạn đã bao giờ giải quyết vấn đề này chưa? Tôi cũng có một tình huống mà tôi đang gửi một mảng các tham số, và __getLastResponse() hiển thị các trình bao bọc SOAP rỗng mà không có tham số nào được truyền đi. – TonyTheJet

+0

Tôi đã có cùng một vấn đề, không có gì được hiển thị. Tôi tìm thấy câu trả lời trong mã nguồn của trang (mở nó thông qua trình đơn ngữ cảnh của trình duyệt của bạn). –

Trả lời

11

getLastRequest():

Phương pháp này chỉ hoạt động nếu đối tượng SoapClient đã được tạo ra với các tùy chọn dấu vết đặt là TRUE.

$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1)); 

trong trường hợp này phù hợp với tôi.

+0

Tôi cũng gặp sự cố này và tôi đã bật theo dõi để điều này không khắc phục được sự cố. – SublymeRick

+0

Phải, vấn đề tồn tại đối với tôi với dấu vết được đặt thành true, như tôi đã hiển thị trong bài đăng gốc của mình. – evan

3

Có thể vì XML trong trình duyệt của bạn không in dưới dạng chuỗi. Nếu vậy, hãy thử một cái gì đó như thế này:

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n"; 
+0

Đã không giúp tôi, nhưng không đáng để kiểm tra/nhận thức được điều này như là một khả năng. – johnsnails

1

Tôi biết đây là muộn, nhưng ...

của nó có thể bạn không bao giờ thực sự đưa ra yêu cầu. Nếu PHP không tạo được cuộc gọi SOAP, bạn sẽ không bao giờ đến được điểm mà bạn đang gửi yêu cầu XML. Kiểm tra nhật ký lỗi của bạn cho các lỗi PHP SOAP.

Các vấn đề liên quan