2013-05-25 30 views
0

每當我嘗試從YouTube獲取一些數據時,它會一直返回「錯誤將請求寫入服務器」作爲異常消息。我使用Zend 1.12.3,我嘗試了一些下面,它的方式工作就像1-2個月前的,但現在顯然他們不Zend Youtube Api不斷返回異常

$yt = new Zend_Gdata_YouTube(); 
$yt->setMajorProtocolVersion(); 
$url = 'https://gdata.youtube.com/feeds/api/videos?orderby=relevance&start-index=1&time=this_month&max-results=15&q=pranks+epic+funny+fun+cool'; 
$videoFeed = $yt->getVideoFeed($url); 

$yt = new Zend_Gdata_YouTube(); 
$query = $yt->newVideoQuery(); 
$query->videoQuery = 'cat'; 
$query->startIndex = 10; 
$query->maxResults = 20; 
$query->orderBy = 'viewCount'; 

$videoFeed = $yt->getVideoFeed($query); 

他們兩個都返回我提到的例外。然而,這

$yt = new Zend_Gdata_YouTube(); 
$url = 'http://gdata.youtube.com/feeds/standardfeeds/top_rated?time=today'; 
$videoFeed = $yt->getVideoFeed($url); 

工作,並不會返回一個錯誤。

我在本地和服務器上嘗試過同樣的事情,發生同樣的錯誤。其他人是否得到相同的錯誤? youtube可能有問題嗎?

+0

我已經嘗試了所有3個代碼片段,並且都正常運行,並且例外情況是您缺少第一個示例中的setMajorProtocolVersion函數調用的參數。有了這個說法,我認爲你不會遇到任何與你的代碼有關的問題。看看[這個答案](http://stackoverflow.com/a/11467791/2000503),因爲它可能會揭示你真正的問題。 –

+0

其實我試過一些解決了我的問題的東西,你能解釋我爲什麼會發生這種情況嗎?我已在下面添加它作爲答案。 – Systemfreak

+0

我讀過你是如何解決這個問題的,但我並不確定。您應該嘗試按照我在之前的評論中發佈的答案中的說明進行調試。從'Zend/Gdata/HttpAdapterStreamingSocket.php'文件的'fwrite'指令中刪除'@'應該顯示出現的真正錯誤。 –

回答

0

出於某種奇怪的原因,當我將第一個示例中的$ url從「https:// .....」更改爲「http:// .....」時,它工作正常。

這很奇怪,因爲https應該工作,但我留在這裏爲任何人可能有同樣的問題。

+0

針對此問題向YouTube提出問題。不要讓它像這樣掛 - 如果youtube有問題,他們需要解決它,尤其是當它像加密一樣。 –

+0

是的你說得對,我今天報道了這個問題,並等待回覆。感謝您的提醒! – Systemfreak