2010-08-05 12 views
1

YouTube에 파일을 업로드 할 수있는 응용 프로그램을 만들려고합니다. OAuth가 작동 중이며 Youtube가 세션을 반환 중입니다!Classic ASP MSXML2.ServerHTTP Post - Youtube Api

내가 겪고있는 문제는 YouTube 웹 페이지를 통해 업로드 할 수있는 URL을 얻기 위해 XMLHTTP POST를해야한다는 것입니다.

나는 youtube가 요구하는 추가 매개 변수로 XMLHTTP Post를 만드는 방법을 모른다. 그들은 PHP 코드 샘플을 가지고 그물 둘 다 아직 이해 :(

이 내가 붙어있는 곳입니다 해달라고 : 나는 모든 사람을 가지고하는 XML HTTP 명령을 포맷하는 방법을 잘 모릅니다 http://code.google.com/apis/youtube/2.0/developers_guide_protocol_browser_based_uploading.html#Sending_a_Browser_Upload_API_Request

을 변수 유튜브는 원하는 이 도와주세요 ... 여기

그들이 원하는 것입니다 .. 여기에
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을 만들고 해당 시도하려하지만

그 4. 기본값이 보내는 방법을 몰라 ... 작동하지 않습니다

여기

내가 가지고 무엇

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

+0

VBScript ...이 문제를 조사해 주셔서 감사합니다 ... 정말 .NET 또는 PHP를 배워야합니다. 10 년 늦게 = ( – Frank

+0

HTTP 헤더를 추가하거나 XML을 만드는 데 도움이 필요합니까? 지금까지 가지고있는 코드를 게시하십시오. – RedFilter

답변

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" 

다음으로 정확한 길이의 콘텐츠를 보내시겠습니까? 이것은 정확해야합니다. 끝에 Content-Type 헤더의 누락 된 "8"은 오타라고 가정합니다.

마지막으로 Fiddler을 설치하고 더 쉽게 생활 할 필요가 있습니다.

+0

는 어떻게 프로그래밍 방식으로? – Frank

+0

는 PS. 덕분에 마이크, NO 이상의 오류를 ... 잠시 그것을 시도 – Frank

+0

감사 것 ,, 아직 해 내용 등 길이까지 측정 할 한 ASP 코드 업데이트 몇 가지 물건을 알아낼 수 있지만 머리글은 괜찮아요 ... 피들러에 대해서도 고마워, – Frank