首页 > 解决方案 > 带有身份验证的php curl POST

问题描述

我必须发送到 API 的 POST 请求有一些问题。

以下是 API 所说的内容:

API 允许您通过向https://clevercast.com/api/v1/webinar/create发送 HTTP POST 请求来创建新的网络研讨会。 该请求需要基本身份验证,使用具有必要权限的 Clevercast 用户的电子邮件地址和他的密码。请求必须编码为 Multipart 表单。“Content-Type”标头必须设置为“multipart/form-data”。其正文应包含下表中带有字符串值的必填字段

于是转头写了以下代码:

     /* API URL */
    $url = 'https://clevercast.com/api/v1/webinar/create';
    $username = 'username';
    $password = 'password';

    /* Init cURL resource */
    $ch = curl_init($url);

    /* Array Parameter Data */
    $data = ['name'=>'Begrafenis van xxxx', 'language'=>'fr', 'start_time'=> '2020-28-12
    13:05', 'end_time'=>'2020-28-12
    13:30'];

    /* pass encoded JSON string to the POST fields */
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);    
    /* set the content type json */
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: ‘multipart/form-data'));

    /* set return type json */
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    //get info

    /* execute request */
    $result = curl_exec($ch);

    /* close cURL resource */
    curl_close($ch);

    print_r($result);

但我总是得到一个 404 回来。

API 的人也给我发了一个示例代码。它应该是这样的:

curl --request POST -u "用户名:密码" -k " https://app.clevercast.com/api/v1/webinar/create/ " -F name="Afscheid van XXX" -F language="nl" -F logo=@/data/funerarium-logo.png -F logo_link="https://example.com/my-funerarium/" -F poster=@/data/foto-overledene.jpg -F start_time="2020 -08-04 14:00" -F end_time="2020-08-04 15:00" -F live_private_communication="questions" -F vod_private_communication="questions" -F email_questions="familie@example.com" -F sender_name ="My Funerarium" -F reply_to_email="info@my-funerarium.com" -F reply_to_name="My Funerarium" -F description="Wij zijn heel verdrietig dat XXX plotseling is ingeslapen. Wij zullen altijd van je blijven houden。
Via de tab hernaast kan u een bericht achterlaten voor de nabestaan​​den." -F background_color="rgba(8,97,106,1)" -F panel_text_color="rgba(8,97,106,1)"

有人知道问题出在哪里吗?有没有办法只发送 RAW curl 命令?

标签: phpapicurlpost

解决方案


所以显然我做得半正确,但他们身边的 PHP 有问题。

他们使用了另一个名为 Raques for PHP 的库(https://github.com/rmccue/Requests

现在它正在正常工作。

谢谢您的帮助 。


推荐阅读