2010-08-05 82 views
1

我想建立一個應用程序,我可以上傳文件到YouTube。 我已經獲得OAuth工作,並且YouTube正在返回一個會話!經典ASP MSXML2.ServerHTTP後 - YouTube的Api

我遇到的問題是,youtube要求我做一個XMLHTTP POST來獲取一個url,我可以通過我的網頁上傳。

我不知道如何使用額外的參數youtube需要一個XMLHTTP職位。 他們在PHP代碼樣本和.net兩者均我不明白尚未:(

這是我堅持: http://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html#Sending_a_Browser_Upload_API_Request

我不知道如何格式的XML HTTP命令將所有這些變量的YouTube希望 請幫助...

這裏是他們想要的東西..

POST /action/GetUploadToken HTTP/1.1 
Host: gdata.youtube.com 
Authorization: AuthSub token="DXAA...sdb8" 
GData-Version: 2 
X-GData-Key: key=adf15ee97731bca89da876c...a8dc 
Content-Length: 1941255 
Content-Type: application/atom+xml; charset=UTF-8 

<?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">Bad Wedding Toast</media:title> 
    <media:description type="plain"> 
     I gave a bad toast at my friend's wedding. 
    </media:description> 
    <media:category 
     scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People 
    </media:category> 
    <media:keywords>toast, wedding</media:keywords> 
    </media:group> 
</entry> 

下面是代碼,我現在: 我認爲我需要頭部? 當我發佈它時,我收到了未經授權的回覆。 我也試圖創建一箇舊的HTML和嘗試,但它不工作...

不知道如何將這些paramenters發送:

這裏是我得到

Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP") 

URLString = "http://gdata.youtube.com/action/GetUploadToken" 
SendString = "" 
    SendString = SendString & "Authorization: AuthSub token=" & token 
xmlHttp.open "POST", URLString & "?" & SendString 
xmlHttp.setRequestHeader "Host:", "gdata.youtube.com" 
xmlHttp.setRequestHeader "Authorization: AuthSub token=", token 
xmlHttp.setRequestHeader "GData-Version:", "2" 
xmlHttp.setRequestHeader "Content-Length:", "<content_length>" 
xmlHttp.setRequestHeader "Content-Type", "application/atom+xml; charset=UTF-" 
xmlHttp.send SendString 

If xmlHttp.Status >= 400 And xmlHttp.Status <= 599 Then 
    Response.Write "<BR><BR><BR>Error Occured: " & xmlHttp.statusText 
Else 
    ' ReturnData = Replace(xmlHttp.responseText, "&", ",") 
     Response.Write "<BR><BR><BR>WENT GOOD?<BR>" & xmlHttp.responseText 
End If 
+0

您使用的是VBScript還是JScript? – RedFilter 2010-08-05 11:22:44

+0

Vbscript ...感謝您關注此... 我真的要學習.NET或PHP。 Im 10 years late =( – Frank 2010-08-05 11:38:30

+0

)您是否需要添加HTTP頭文件或創建XML的幫助?請發佈您的代碼。 – RedFilter 2010-08-05 11:49:20

回答

1

第一,setRequestHeader不佔用冒號。它應該是

xmlHttp.setRequestHeader "Host", "gdata.youtube.com" 
xmlHttp.setRequestHeader "Authorization", "AuthSub token=" & token 
xmlHttp.setRequestHeader "GData-Version", "2" 
xmlHttp.setRequestHeader "Content-Length", "<content_length>" <-- THIS IS IMPORTANT! 
xmlHttp.setRequestHeader "Content-Type", "application/atom+xml; charset=UTF-8" 

接下來,您是否發送正確的內容長度?這需要準確。 我認爲從您的內容類型標題末尾丟失的「8」是一個錯字。

最後,您需要立即安裝Fiddler,讓您的生活更簡單。

+0

如何衡量內容長度編程? – Frank 2010-08-05 22:34:44

+0

PS。感謝邁克,要嘗試在一分鐘... – Frank 2010-08-05 22:35:18

+0

感謝 不再有錯誤,,還是得 弄清楚一些東西,但它的頭文件很好......謝謝關於提琴手了,知道了 – Frank 2010-08-05 23:08:46