2012-04-10 68 views
0

我嘗試以下網址:W3C驗證返回HTTP 500,儘管它在瀏覽器

http://validator.w3.org/mobile/check?docAddr=mobisoft.net.pl&output=unicorn 

在桌面Firefox或Chrome瀏覽器和一切工作正常。它返回有效的XML響應。

之後,我創建了Android應用程序,它連接到W3C以獲得驗證結果。下面的代碼:

Url url = new URL("http://validator.w3.org/mobile/check?docAddr=mobisoft.net.pl&output=unicorn"); 
URLConnection connection = url.openConnection(); 
HttpURLConnection httpConnection = (HttpURLConnection) connection; 

int responseCode = httpConnection.getResponseCode(); 

我總是得到HTTP狀態代碼500內部服務器的問題,儘管事實上,它工作正常,在執行上的桌面瀏覽器相同的URL。其他網站也存在同樣的問題。

你有什麼想法,爲什麼它在我的Android應用程序中不起作用?

+0

也許這個URL在被髮送到服務器之前被某種方式破壞了。有些人可能會逃避,也許? – 2012-04-10 18:57:08

+0

你有沒有嘗試使這裏描述的webrequest,以防萬一http://stackoverflow.com/questions/3505930/make-in-http-request-with-android – 2012-04-10 18:59:16

+0

你爲什麼比較一個java程序在android上的執行到您在桌面瀏覽器上獲得的結果?你正在增加許多不必要的未知數。該網址是否可以在手機瀏覽器上使用?該程序是否在桌面上的普通Java應用程序中工作? – Voo 2012-04-10 19:01:21

回答

1

嘗試添加一個HTTP「User-Agent」頭,也許這就是問題所在。否則,我會建議使用現有的開源Java庫,它代表您(通過W3C)進行驗證:rexsl-w3c

編輯:添加「接受」HTTP標頭,並帶有「application/soap + xml」值工作正常。

+0

我添加了「User-Agent」標題,它不起作用。 此庫不包含mobileOK檢查器:/。 – 2012-04-19 20:40:00

+0

這個驗證將在幾天內在rexsl-w3c中實現,請參閱:http://trac.fazend.com/rexsl/ticket/382 – yegor256 2012-04-20 05:24:04

+0

我編輯了我的答案,使用「Accept」HTTP標題,您將會很好 – yegor256 2012-04-20 06:09:32