Çok fazla veri geçerken SoapClient hatayı atar

1 Cevap php

Select sınıflardan sonuçları döndüren basit bir sınıf var. Db kullanıcı yalnızca seçkin ayrıcalıklara sahip.

Sınıf çok 3. parti raporlama araçları oluşturmak için veritabanını sorgulayabilirsiniz SABUN aracılığıyla yapılır.

The problem is the PHP SoapClient throws a SoapFault exception when I try to select too many rows. On a table with about 10 collumn with small pieces of data I can only select about 80 rows.
The return Soap response has a total size of 134KB, which is obviously not very much...

I max_input_time, memory_limit ve max_execution_time olarak ini parametreleri ayarlayarak denedim, ama hiçbir şey hapened ...

Neden SoapClient başarısız?

Hata atıldı: ( Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document

1 Cevap

SoapClient sınıfı, bir hata var. Ben bunu düzeltmek için başaramadı. Ben onlar kılavuzda hakkında yazdı default_socket_timeout ayarlamak, ancak tek etkisi SoapFault kaybolduğu oldu.

Ben bu ayarlarla kıvrılma ve el yapımı xml ile sorun çözüldü:

ini_set('default_socket_timeout',120); //2 minutes for downloading the data
ini_set('memory_limit','256M'); //increase memory limit
ignore_user_abort(true); //abort user ignore
set_time_limit(0); //set execution time infinite
curl_setopt($connection,CURLOPT_TIMEOUT,120); //2 minutes timeout

SoapClient ve SoapServer sınıflar hataların sürü (vb zaman aşımı hatası, hiçbir xsd doğrulama, ..) var, bu yüzden eğer, o zaman başka bir alternatifi seçebilirsiniz.