Я использую curl для отправки XML-запросов в API от Emailvision. В последнее время у меня возникают проблемы, когда некоторые запросы приводят к «500 Internal Server Error», в то время как другие отправляются без ошибок.
Ниже выводится подробный вывод, может кто-нибудь, пожалуйста, помогите мне объяснить, что может быть причиной ошибки.
* 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/emailAddress=premium-server@thawte.com
* 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/emailAddress=premium-server@thawte.com
* 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/emailAddress=premium-server@thawte.com
* 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/emailAddress=premium-server@thawte.com
* 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/emailAddress=premium-server@thawte.com
* 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_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?