我只想向 YouTube 的服务器发送一个 POST 请求,通过 OAuth 将视频直接上传到 YouTube。
我有访问令牌和开发人员密钥 - 我如何将 POST 请求从 PHP 发送到 YouTube 的 gdata 服务器?
我想发送的 POST 请求可以在这里找到:发送上传 API 请求
POST /feeds/api/users/default/uploads HTTP/1.1
Host: uploads.gdata.youtube.com
Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=DEVELOPER_KEY
Slug: VIDEO_FILENAME
Content-Type: multipart/related; boundary="BOUNDARY_STRING"
Content-Length: CONTENT_LENGTH
Connection: close
--<boundary_string>
Content-Type: application/atom+xml; charset=UTF-8
API_XML_request
--BOUNDARY_STRING
Content-Type: VIDEO_CONTENT_TYPE
Content-Transfer-Encoding: binary
<Binary File Data>
--BOUNDARY_STRING--
我尝试了下面的函数,并且更喜欢它,但它无法发送上述 POST 请求的 XML 部分。
if (!function_exists('send_post_request'))
{
function send_post_request($url, $data)
{
$context = stream_context_create(array('http' => array('method' => 'POST',
'content' => http_build_query($data))));
$result = file_get_contents($url, FALSE, $context);
return $result;
}
}
我也试过卷曲!