获取POST请求需要Content-length头响应(411错误)

时间:2011-09-28 15:50:04

标签: php http youtube youtube-api

我一直在尝试使用自己的代码在视频上传视频。 在一个步骤中,当我尝试上传视频元数据时,您可以获取用于上传视频的令牌和网址

  

POST请求需要Content-length标头。我们知道的就这些。   (411)

我的代码如下:

$xml = '<?xml version="1.0"?>
              <entry xmlns="http://www.w3.org/2005/Atom"
                xmlns:media="http://search.yahoo.com/mrss/"
                xmlns:yt="http://gdata.youtube.com/schemas/2007">
                <media:group>
                  <media:title type="plain">Video.loc</media:title>
                  <media:description type="plain">
                    Video.loc first vid
                  </media:description>
                  <media:category
                    scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People
                  </media:category>
                  <media:keywords>Video.loc</media:keywords>
                </media:group>
              </entry>';
    $headers = array('Authorization: AuthSub token="'.$_SESSION['AuthSubSessToken'],
                      'GData-Version: 2',
                     'X-GData-Key: key='.$key,
                     'Content-length:'.strlen($xml),
                     'Content-Type:application/atom+xml; charset=UTF-8'
                );
      $curl = curl_init('http://gdata.youtube.com/action/GetUploadToken');

              curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
              curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
              curl_setopt($curl, CURLOPT_HEADER, 0);
              $response = simplexml_load_string(curl_exec($curl));                                 
              $response = curl_exec($curl);

              $arrToken = explode('=',$response);
              print('<pre>');print_r($arrToken);die();
              curl_close($curl)

是否有人知道如果我身边或谷歌出错?

此致 Himanshu Sharma

1 个答案:

答案 0 :(得分:2)

您错过了

之后的结束"
  AuthSub token="'.$_SESSION['AuthSubSessToken'],

可能会弄乱标题。