我正在尝试将xml发送到休息服务器。
$url = url;
$file = 'finn/test.xml';
$post = array('name' => 'fil','file_contents'=>'@'.$file);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
当我运行此代码时,我得到一个空白的回复。
我知道服务器或xml没有任何问题,因为当我使用它来将文件上传到服务器时,一切正常。
<html>
<body>
<form name="bilupload" action="url" method="post" enctype="multipart/form-data">
partner: <input TYPE="FILE" NAME="fil" size="10">
<br>
<input type="submit" value="Send">
</form>
</body>
</html>
curl_getinfo打印出来:
[url] => url
[content_type] => text/html;charset=ISO-8859-1
[http_code] => 200
[header_size] => 497
[request_size] => 144
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.062231
[namelookup_time] => 2.7E-5
[connect_time] => 0.016873
[pretransfer_time] => 0.016928
[size_upload] => 3668
[size_download] => 35
[speed_download] => 562
[speed_upload] => 58941
[download_content_length] => 35
[upload_content_length] => 3668
[starttransfer_time] => 0.034394
[redirect_time] => 0
我已经挣扎了很长一段时间,如果有人能指出我正确的方向,我将非常感激。
答案 0 :(得分:2)
您的表单告诉服务器它以给定格式发送表单数据:
enctype="multipart/form-data"
但是你的PHP脚本告诉它发送XML(但根本不发送XML):
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
我想你想要这个:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));
...虽然你可以省略该行。
也许你有Accept
标题: - ?