【发布时间】:2011-04-05 14:25:37
【问题描述】:
我正在尝试使用 curl 访问 3rd 方 Web 服务,我使用了以下代码,如果我在自己的 linux 服务器上尝试它,效果很好,数据发送正常,但是 3rd 方服务器上的 IIS 返回一个错误。
$longdata 是一长串数据,长度可能超过 1000 个字符
第 3 方有许多具有各种实现的工作客户,所以问题在我这边。
我需要在请求中添加什么才能通过它?
<?php
$c = curl_init();
// curl_setopt($c, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($c, CURLOPT_URL, 'http://XXX.com/test/index.asmx');
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$post = array('param1' => 'XXXX', "param2" => "Y", "Param3" => $long_data);
curl_setopt($c, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($c);
echo $response;
/*
Response:
HTTP/1.1 100 Continue
HTTP/1.1 500 Internal Server Error
Date: Tue, 05 Apr 2011 14:11:51 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Length: 100
Request format is invalid: multipart/form-data; boundary=----------------------------5d738237d9e0.
*/
?>
【问题讨论】:
-
我的问题是我没有发送
application/x-www-form-urlencoded数据,但这是服务器所期望的。