gpt4 book ai didi

对 IIS 的 PHP Curl 请求导致请求格式无效

转载 作者:行者123 更新时间:2023-12-03 20:27:38 26 4
gpt4 key购买 nike

我正在尝试使用 curl 访问第 3 方网络服务,我使用了以下代码,如果我在自己的 linux 服务器上尝试它,效果很好,数据发送正常,但第 3 方服务器上的 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.

*/
?>

最佳答案

对于那些像我一样通过谷歌来到这里的人,我找到了一篇解决问题的文章。

http://www.developersalley.com/blog/post/2011/06/22/SystemInvalidOperationException-Request-format-is-invalid-multipartform-data-boundary-Error-When-Calling-Net-Web-Service-from-PHP.aspx

基本上,您必须对数据数组进行字符串化

$post_array = array(
"Param1"=>'xyz',
"Param2"=>'abc',
"Param3"=>'123'
);

//url-ify the data
foreach($post_array as $key=>$value)
{
$post_array_string .= $key.'='.$value.'&';
}
$post_array_string = rtrim($post_array_string,'&');
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_POST,count($post_array ));
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_array_string);

关于对 IIS 的 PHP Curl 请求导致请求格式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5553479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com