我尝试了以下网址:
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 应用程序中不起作用吗?
最佳答案
尝试添加 HTTP“User-Agent” header ,也许这就是问题所在。否则,我建议使用现有的开源 Java 库,它代表您进行此验证(通过 W3C):rexsl-w3c
编辑:添加带有“application/soap+xml”值的“Accept”HTTP header ,可以正常工作。
关于java - W3C validator 返回 HTTP 500,尽管它可以在浏览器中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094707/