java - W3C validator 返回 HTTP 500,尽管它可以在浏览器中运行

标签 java android http w3c-validation

我尝试了以下网址:

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/

相关文章:

android - 使用 Activity 的两个 fragment 之间的通信给出 NullPointerException

Android:通过 http 加载多个位图/缩略图的最快方法是什么?

java - 可靠地停止无响应的线程

java - 如何在 Java 中将 JSONObject 写入其中包含 JSONArray 的文件?

java - Spock 单元测试,常规左移赋值抛出 SpockExecutionException : Data provider has no data

python - 如何使用 WebOb 构建文件上传 POST HTTP 请求?

django - 将响应发送到客户端后在 Django 中执行代码

java - 如何将拖动的节点保持在其他节点前面(JavaFX 8)?

java - Android - 将具有 Firebase 功能的监听器保留在类之外

android - 无法在自行关闭的对话框中设置错误