java - API 对于浏览器返回 200,对于 Jsoup 返回 500

标签 java jsoup

当我从浏览器调用 API 时,它返回状态代码 200 和 JSON 对象。但是,如果我从 Java/JSoup 调用 API,它会返回状态代码 500 和“HTTP 获取 URL 时出错,Status=500”

String json = Jsoup.connect(url)
    .ignoreContentType(true)
    .timeout(5000)
    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2")
    .ignoreContentType(true)
    .execute()
    .body();
System.out.println(json);

最佳答案

在浏览器中,使用开发者模式查看 HTTP 请求的详细信息。

运行 Java 程序时,获取 HTTP 请求的调试日志(参见:Jsoup http logging)

比较请求的每个细节 - 确保所有 header 都相同,或者您确定它们不相关。

如果您有权访问服务器,请在服务器日志中查找消息,其中提供有关 500 原因的详细信息。

关于java - API 对于浏览器返回 200,对于 Jsoup 返回 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119031/

相关文章:

java - 多个安卓屏幕的图像大小

JavaFX - 加载下一个场景时保留工具栏

java - 如何从依赖Maven模块加载资源

java - URL 连接上的 InputStreamReader 返回 null

java - 使用 HashMap 存储大量数据会降低我的 Android 应用程序的速度,还有其他选择吗?

java - 如何使用 jsoup post 请求提交没有按钮名称的表单

java - 按第三个元素对字符串数组列表进行排序

java - 将 spring-mvc AbstractExcelView 与已创建的文档一起使用

android - 如何将 CookieManager 持有的 cookie 传递给 Android 中的 Jsoup?

java - 输出 JSoup,元素周围不添加空格和换行符