问题标签 [httpurlconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3124 浏览

java - java httpurlconnection切断html

嘿,我正在尝试从 twitter 个人资料页面获取 html,但 httpurlconnection 仅返回一小段 html。我的代码

我总是得到 200 作为每次呼叫的响应代码。然而,大约有 1/3 的时间返回整个 html 文档,而另一半只返回前几百行。html 被截断时返回的数量并不总是相同的。

有任何想法吗?谢谢你的帮助!

附加信息:查看标题后,我似乎得到了重复的内容长度标题。第一个是全长,另一个短得多(可能代表我有时会得到的长度)如何处理重复的标题?

0 投票
3 回答
29224 浏览

java - Java 中的持久 HttpURLConnection

我正在尝试编写一个 java 程序,它会自动下载并命名一些我最喜欢的网络漫画。由于我将从同一个域请求多个对象,因此我希望有一个持久的 http 连接,我可以保持打开状态,直到所有漫画都下载完毕。下面是我正在进行的工作。如何在不打开新的 http 连接的情况下从同一个域但不同的路径发出另一个请求?

0 投票
6 回答
54856 浏览

android - HttpUrlConnection.openConnection 第二次失败

我知道这个问题应该用 System.setProperty("http.keepAlive", "false"); 在 openConnection 之前,但这对我不起作用。第一次尝试此代码有效,第二次失败。即使我在不​​到 5 秒后尝试这个请求,它也可以工作。如果我等待更多,它会再次失败

这是我的代码:

我在最后一行得到异常:

有人知道这里出了什么问题吗?谢谢!

0 投票
1 回答
455 浏览

java - 在用 Java 获取网站的 HTML 时需要帮助

我从java httpurlconnection 中获得了一些代码,切断了 html,而我从 Java 网站获取 html 的代码几乎相同。除了我无法使用此代码的一个特定网站:

我正在尝试从该网站获取 HTML:

http://www.geni.com/genealogy/people/William-Jefferson-Blythe-Clinton/6000000001961474289

但我不断收到垃圾字符。尽管它适用于任何其他网站,例如http://www.google.com

这是我正在使用的代码:

我不明白为什么它不适用于我上面提到的 URL。

任何帮助将不胜感激。

0 投票
4 回答
23711 浏览

java - Java:在发送之前显示 HttpURLConnection 的请求

我想使用HttpURLConnection. 但是请求不成功,返回:

所以我想检查发送到服务器的“真实”内容是什么。真正的内容是指确切的 HTTP 请求。

任何想法我怎么能看到这个?

编辑: 根据这里的第一个答案,我应该澄清我的问题:我想避免使用外部程序,如 HTTP 嗅探器或任何东西,我希望有一个函数或一个属性或任何包含我正在寻找的信息的东西。

如果不是这种情况,是否有人知道是否可以手动重建此信息(例如通过调用 getRequestMethod() 等多个函数等)

我经常遇到这个问题,所以自己努力构建这样的功能是值得的。只需要知道如何:)

0 投票
6 回答
29666 浏览

network-programming - HttpURLConnection 实现

我读过 HttpURLConnection 支持持久连接,因此一个连接可以重复用于多个请求。我试过了,发送第二个 POST 的唯一方法是第二次调用 openConnection。否则我得到一个 IllegalStateException("Already connected"); 我使用了以下内容:

第二个请求是通过同一个 TCP 连接发送的(使用wireshark 验证),但我不明白为什么(尽管这是我想要的),因为我已经调用了断开连接。我检查了 HttpURLConnection 的源代码,并且该实现确实保留了到相同目的地的连接的保活缓存。我的问题是,在我发送第一个请求后,我看不到连接是如何放回缓存中的。断开连接关闭连接并且没有断开连接,我仍然看不到连接是如何放回缓存中的。我看到缓存有一个运行方法来遍历所有空闲连接(我不确定它是如何调用的),但我找不到连接是如何放回缓存中的。似乎发生的唯一地方是在 httpClient 的完成方法中,但这不是为带有响应的 POST 调用的。谁可以帮我这个事?

编辑 我的兴趣是,正确处理 HttpUrlConnection 对象以重用 tcp 连接的方法是什么。应该关闭输入/输出流,然后是 url.openConnection(); 每次发送新请求(避免断开())?如果是的话,当我第二次调用 url.openConnection() 时,我看不到连接是如何被重用的,因为第一次请求的连接已经从缓存中删除并且找不到它是如何返回的。连接是否有可能没有返回到keepalive缓存(错误?),但操作系统尚未释放tcp连接并且在新连接上,操作系统返回缓冲连接(尚未释放)或类似的东西? EDIT2 我发现的唯一相关来自JDK_KeepAlive

...当应用程序对 URLConnection.getInputStream() 返回的 InputStream 调用 close() 时,JDK 的 HTTP 协议处理程序将尝试清理连接,如果成功,则将连接放入连接缓存以供将来的 HTTP 请求重用.

但我不确定这是哪个处理程序。sun.net.www.protocol.http.Handler 没有做任何缓存,因为我看到了谢谢!

0 投票
1 回答
7745 浏览

java - 来自服务器的文件意外结束

这是我的代码

当我尝试像这样(http://kart3:7890/sample/sample.jsp)传递 jsp 文件的 url 时收到这样的错误消息你能告诉我我错过了什么吗

0 投票
2 回答
2988 浏览

java - getContentLength() 在某些设备上返回 -1 而在其他设备上不返回

我正在尝试在下载文件之前获取文件的大小。我曾经conn.getContentLength();这样做,它在我的家用电脑 Android 2.1 模拟器上运行良好。

但是,一旦我从我的手机(WiFi 或 3G)运行我的应用程序,它就不起作用,当我从我的工作笔记本电脑 Android 2.1 模拟器运行它时,它也不起作用。

有谁知道这个的解决方法?有没有另一种方法可以在不使用HttpURLConnection.

0 投票
1 回答
646 浏览

java - 为什么 HttpURLConnection.getResponseCode() 返回 1?

我有一段 Java 代码打开一个 HTTP 连接,在上面写入数据,然后检索响应代码。因为,connectin 很好,它应该得到 HTTP_OK(即 200),但它得到 1 作为回报。

这令人困惑,因为 1 在 Http Response 代码规范中没有出现。任何人都可以就潜在的问题领域提出一些想法吗?

以下是一段代码:

输出

收到的响应代码是:1

0 投票
3 回答
2997 浏览

java - HttpsURLConnection 连接问题

我似乎无法解决 HttpsURLConnection 的问题。基本上,我正在向服务器发送一些信息,如果其中一些数据有误,服务器会向我发送一个 500 响应代码。但是,它还会在响应中发送一条消息,告诉我哪位数据是错误的。问题是当我读入消息时消息总是空的。我认为这是因为在读取流之前总是抛出一个 filenotfound 异常。我对吗?我也尝试阅读错误流,但这总是空的。这是一个片段: