0

:) 我正在尝试使用 curl 但不作为 post 参数发送 XML。我的意思是这个。

例如。

该 XML 的接收方将无法使用$_POST变量接收 XML。

他将需要使用以下代码:

    $xmlStr=null;
    $file=fopen('php://input','r');
    $xmlStr=fgets($file);

我希望能够通过 https 使用 curl 发送一个 xml 字符串。

所以以下是错误的:

public static function HttpsNoVerify($url,$postFields=null,$verbose=false) {
    // Initialize session and set URL.
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);

    // Set so curl_exec returns the result instead of outputting it.
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    if ($postFields !=null) {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
    }
    if ($verbose) {
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
    }
    // Get the response and close the channel.
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

因为在这里我可以使用HttpsNoVerify($url,array('xml_file'=>'xml..'));并将其粘贴为 post 参数。我希望它作为后期输出。

所以请我希望我能正确地解释自己,并且我确切地解释了我不想做的事情。

我怎么能做我想做的事?

谢谢!:)

冷杉

4

1 回答 1

1

只需直接将 xml 字符串作为第二个参数而不是关联数组项传递,

HttpsNoVerify($url, 'xml ..');

这最终会调用

curl_setopt($ch, CURLOPT_POSTFIELDS, "xml ...");

它将php://input用于远程服务器。

于 2013-01-17T13:41:36.783 回答