当我将XML内容从一台服务器发布到其他服务器时,它没有被添加。 我正在使用cURL将xml文件发布到另一台服务器。但是我收到了以下回复:
HTTP/1.1 200 OK
Date: Thu, 21 Jul 2011 08:13:02 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g
X-Powered-By: PHP/5.2.4-2ubuntu5.6
Set-Cookie: PHPSESSID=6846cb7e65f6f6d6d87f163a681f0543; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 5721
Content-Type: text/html; charset=UTF-8
这是我的代码
$file_path= WWW_ROOT.$xmlfilename;
$xmldata = file_get_contents($file_path);
$request = 'http://www.sample.com/someaction';
$postargs = 'xml='.urlencode($xmldata).'&filename='.urlencode($xmlfilename);
// Get the curl session object
$session = curl_init($request);
// Set the POST options.
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_POSTFIELDS, $postargs);
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Do the POST and then close the session
$response = curl_exec($session);
print_r( $response);
注意:两个服务器都启用了allow_url_fopen和curl。
答案 0 :(得分:2)
尝试像这样分配:
$ postargs = array('xml'=> urlencode($ xmldata),'filename'=> urlencode($ xmlfilename))
这两个项目应该出现在接收方的$ _POST ['xml']和$ _POST ['filename']中(如果不是PHP,则显示在等效内容中)。
修改强>
好的,您可能需要使用CURLOPT_READFUNCTION查看流式传输XML文件。
请参阅此示例以获取一些示例http://zingaburga.com/2011/02/streaming-post-data-through-php-curl-using-curlopt_readfunction/