在PHP中卷曲的问题?
问题描述:
我正在使用curl从Emailvision向API发送xml请求。最近我遇到了一些请求导致“500内部服务器错误”的问题,而其他请求却没有发生任何错误。在PHP中卷曲的问题?
verbose的输出粘贴在下面,有人可以帮我解释可能导致错误的原因。
* 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_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中识别的字符?
答
500意味着他们的系统存在编程错误,而不是你的系统。这可能是由你发送错误参数引起的,但它们应该以不同的方式处理。
我会通知公司你正在做的事情是造成500人,他们应该能够在他们的最终解决它。
不确定提出什么解决方案,但是这表示字符编码问题,如果这有助于您指出正确的方向。 – 2010-09-15 07:16:35