2010-09-15 3 views
0

Я использую curl для отправки xml-запросов API из Emailvision. В последнее время возникают проблемы, когда некоторые запросы приводят к «500 Internal Server Error», а другие отправляются без каких-либо ошибок.Проблемы с завитком в php?

Вывод подробного вложения приведен ниже, может кто-то, пожалуйста, помогите мне понять, что может быть причиной ошибки.

 
* About to connect() to api.notificationmessaging.com port 443 
* Trying 81.92.116.8... * connected 
* Connected to api.notificationmessaging.com (81.92.116.8) port 443 
* successfully set certificate verify locations: 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-MD5 
* Server certificate: 
*  subject: /C=FR/ST=Hauts de Seine/L=Clichy/O=Emailvision/OU=Provided by TBS INTERNET http://www.tbs-certificats.com//CN=*.notificationmessaging.com 
*  start date: 2008-09-20 09:09:15 GMT 
*  expire date: 2010-09-20 09:09:15 GMT 
*  issuer: /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected] 
* SSL certificate verify ok. 
POST /NMSXML HTTP/1.1 
Host: api.notificationmessaging.com 
Accept: */* 
Content-Length: 2177 
Content-Type: application/x-www-form-urlencoded 
Expect: 100-continue 

HTTP/1.1 100 Continue 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0 2177 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 HTTP/1.1 200 OK 
Date: Wed, 15 Sep 2010 05:15:53 GMT 
X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 
Content-Type: application/xml;charset=utf-8 
Content-Length: 82 
Connection: close 
100 2259 0 82 100 2177 969 25745 --:--:-- --:--:-- --:--:-- 80629* Closing connection #0 

* About to connect() to api.notificationmessaging.com port 443 
* Trying 81.92.116.8... * connected 
* Connected to api.notificationmessaging.com (81.92.116.8) port 443 
* successfully set certificate verify locations: 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-MD5 
* Server certificate: 
*  subject: /C=FR/ST=Hauts de Seine/L=Clichy/O=Emailvision/OU=Provided by TBS INTERNET http://www.tbs-certificats.com//CN=*.notificationmessaging.com 
*  start date: 2008-09-20 09:09:15 GMT 
*  expire date: 2010-09-20 09:09:15 GMT 
*  issuer: /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected] 
* SSL certificate verify ok. 
POST /NMSXML HTTP/1.1 
Host: api.notificationmessaging.com 
Accept: */* 
Content-Length: 21942 
Content-Type: application/x-www-form-urlencoded 
Expect: 100-continue 

HTTP/1.1 100 Continue 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0 21942 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 HTTP/1.1 500 Internal Server Error 
Date: Wed, 15 Sep 2010 05:15:52 GMT 
X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 
Content-Type: text/xml 
Content-Length: 0 
Connection: close 
100 21942 0  0 100 21942  0 216k --:--:-- --:--:-- --:--:-- 535k* Closing connection #0 

* About to connect() to api.notificationmessaging.com port 443 
* Trying 81.92.116.8... * connected 
* Connected to api.notificationmessaging.com (81.92.116.8) port 443 
* successfully set certificate verify locations: 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-MD5 
* Server certificate: 
*  subject: /C=FR/ST=Hauts de Seine/L=Clichy/O=Emailvision/OU=Provided by TBS INTERNET http://www.tbs-certificats.com//CN=*.notificationmessaging.com 
*  start date: 2008-09-20 09:09:15 GMT 
*  expire date: 2010-09-20 09:09:15 GMT 
*  issuer: /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected] 
* SSL certificate verify ok. 
POST /NMSXML HTTP/1.1 
Host: api.notificationmessaging.com 
Accept: */* 
Content-Length: 11602 
Content-Type: application/x-www-form-urlencoded 
Expect: 100-continue 

HTTP/1.1 100 Continue 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0 11602 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 HTTP/1.1 500 Internal Server Error 
Date: Wed, 15 Sep 2010 05:15:52 GMT 
X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 
Content-Type: text/xml 
Content-Length: 0 
Connection: close 
100 11602 0  0 100 11602  0 118k --:--:-- --:--:-- --:--:-- 306k* Closing connection #0 

* About to connect() to api.notificationmessaging.com port 443 
* Trying 81.92.116.8... * connected 
* Connected to api.notificationmessaging.com (81.92.116.8) port 443 
* successfully set certificate verify locations: 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-MD5 
* Server certificate: 
*  subject: /C=FR/ST=Hauts de Seine/L=Clichy/O=Emailvision/OU=Provided by TBS INTERNET http://www.tbs-certificats.com//CN=*.notificationmessaging.com 
*  start date: 2008-09-20 09:09:15 GMT 
*  expire date: 2010-09-20 09:09:15 GMT 
*  issuer: /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected] 
* SSL certificate verify ok. 
POST /NMSXML HTTP/1.1 
Host: api.notificationmessaging.com 
Accept: */* 
Content-Length: 2178 
Content-Type: application/x-www-form-urlencoded 
Expect: 100-continue 

HTTP/1.1 100 Continue 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0 2178 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 HTTP/1.1 200 OK 
Date: Wed, 15 Sep 2010 05:15:53 GMT 
X-Powered-By: Servlet 2.4; JBoss-4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)/Tomcat-5.5 
Content-Type: application/xml;charset=utf-8 
Content-Length: 82 
Connection: close 
100 2260 0 82 100 2178 777 20644 --:--:-- --:--:-- --:--:-- 45375* Closing connection #0 

* About to connect() to api.notificationmessaging.com port 443 
* Trying 81.92.116.8... * connected 
* Connected to api.notificationmessaging.com (81.92.116.8) port 443 
* successfully set certificate verify locations: 
* CAfile: /etc/pki/tls/certs/ca-bundle.crt 
    CApath: none 
* SSL connection using RC4-MD5 
* Server certificate: 
*  subject: /C=FR/ST=Hauts de Seine/L=Clichy/O=Emailvision/OU=Provided by TBS INTERNET http://www.tbs-certificats.com//CN=*.notificationmessaging.com 
*  start date: 2008-09-20 09:09:15 GMT 
*  expire date: 2010-09-20 09:09:15 GMT 
*  issuer: /C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/[email protected] 
* SSL certificate verify ok. 
POST /NMSXML HTTP/1.1 
Host: api.notificationmessaging.com 
Accept: */* 
Content-Length: 2178 
Content-Type: application/x-www-form-urlencoded 
Expect: 100-continue 

HTTP/1.1 100 Continue 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
    0 2178 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 

И ниже приведен фрагмент curl, который я использую, чтобы делать запросы.

 
curl_setopt($ch, 
CURLOPT_URL,'https://api.notificationmessaging.com/NMSXML'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $sXML); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 600); 
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
curl_setopt($ch, CURLOPT_NOPROGRESS, 0); 
$res = curl_exec($ch); 

Может кто-то помочь.

Благодаря

UPDATE: Найдено, что проблема с некоторыми персонажами, как â в XML, как отметил Марк. Теперь есть способ удалить/преобразовать все символы, не распознанные в xml?

+0

Не знаете, что предложить для решения, но это указывает на проблему кодировки символов, если это поможет вам в правильном направлении. –

ответ

2

A 500 означает, что в их системе есть ошибка программирования, а не ваша. Это может быть вызвано тем, что вы отправляете плохие параметры, но они должны иметь дело с этим по-другому.

Я бы проинформировал компанию о том, что что-то, что вы делаете, вызывает 500, и они должны иметь возможность исправить это на своем конце.

Смежные вопросы