duanjue2560 2018-05-03 05:30
浏览 205
已采纳

linkedin媒体上传api出错

I am trying to upload an image using linkedin api. I already uploaded image in my server and now I want to upload the upoaded image url to linkedin. But I got the error

{ "serviceErrorCode":0,"message":"The request is not a multipart request","status":400 }

      $curl1 = curl_init();
      $m_url="https://api.linkedin.com/media/upload";

      $curl_header = array("Authorization:Bearer ".$access_token);
      $uploadRequest = array(
            'name'=>'media',
            'filename' => basename($medias[0]),
            'media_data' => base64_encode(file_get_contents($medias[0]))
                );
                curl_setopt_array($curl1, array(
                  CURLOPT_URL => $m_url,
                  CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_ENCODING => "",
                  CURLOPT_MAXREDIRS => 10,
                  CURLOPT_TIMEOUT => 30,
                  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                  CURLOPT_CUSTOMREQUEST => "POST",
                  CURLOPT_POSTFIELDS =>$uploadRequest,
                  CURLOPT_HTTPHEADER=>$curl_header,

                ));
                $response1 = curl_exec($curl1);
                $err1 = curl_error($curl1);

                curl_close($curl1);

This is the request. Please anyone tell me What is the exact issue and how to sort this out.Thanks in advance.

  • 写回答

1条回答 默认 最新

  • dongmubi4375 2018-05-03 06:52
    关注

    Added header like this:

           $curl_header=array("Content-Type:multipart/form-data", 
           "Authorization:Bearer ".$access_token);
    

    And changed the post params like this

              $curl1 = curl_init();
    
              $m_url="https://api.linkedin.com/media/upload";
              $uploadRequest['file'] = new CURLFile($img, 'image/png', basename($img));
    
    
                $curl_header=array("Content-Type:multipart/form-data", "Authorization:Bearer ".$access_token);
    
                    curl_setopt_array($curl1, array(
                      CURLOPT_URL => $m_url,
                      CURLOPT_RETURNTRANSFER => true,
                      CURLOPT_ENCODING => "",
                      CURLOPT_MAXREDIRS => 10,
                      CURLOPT_TIMEOUT => 30,
                      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                      CURLOPT_CUSTOMREQUEST => "POST",
                      CURLOPT_POSTFIELDS =>$uploadRequest,
                      CURLOPT_HTTPHEADER=>$curl_header,
    
                    ));
    
                    $response1 = curl_exec($curl1);
                    $err1 = curl_error($curl1);
                    $status1 = curl_getinfo($curl1, CURLINFO_HTTP_CODE);
    
    
                    curl_close($curl1);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同