CURL与IIS在获取发布数据时出现问题

时间:2016-09-30 13:29:34

标签: iis curl zend-framework2

我有一个使用cURL(最新版本)连接到我们的API(IIS)服务器的站点。我的解决方案适用于wamp和XAMPP但在IIS中遇到问题

我无法在API服务器上发布数据。

// Code Snippets

$ client = new HttpClient();

    $client->setAdapter('Zend\Http\Client\Adapter\Curl');

    $url = (isset($apiUrl) && $apiUrl != NULL ) ? $apiUrl : CustomConstantsFunction::apiCommunityUrl();
    $client->setUri($url);

    $headers = $client->getRequest()->getHeaders();
    $headers->addHeaderLine('Authorization', \Application\Functions\CustomConstantsFunction::encryptDecrypt('encrypt',$host.'-ZendCommunityProduct-'.$todayTimestamp));

    $client->setMethod('POST');

    $client->setParameterPOST($postData);

    $client->setHeaders($headers);
    $client->setOptions(array(
        'maxredirects' => 1,
        'timeout'      => 300,
        'curloptions' => array(
            CURLOPT_HEADER => 1,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_UNRESTRICTED_AUTH => TRUE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
        )
    ));
    $response = $client->send();
    $response = $response->getBody();
    $data = json_decode($response);        
    return $data;

我也尝试过cURL&不同的网站,他们返回的内容很好,但对我没用。

是否有其他人遇到此错误并知道解决方法?

谢谢:)

1 个答案:

答案 0 :(得分:0)

请尝试使用以下api url

    $url = (isset($apiUrl) && $apiUrl != NULL ) ? $apiUrl."/" : CustomConstantsFunction::apiCommunityUrl();

并且还更改了$ client setOptions参数。

    $client->setOptions(array(
        'maxredirects' => 2,
        'timeout'      => 300
    ));

它为我工作。 :)