问题标签 [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 投票
1 回答
2093 浏览

java - 将 HttpUrlConnection 无限期地打开到远程 REST 端点是否合理?

我希望通过一个简单的 REST 风格的 HTTP 帖子优化一个持续运行并频繁调用(平均每秒 > 1 次)外部 API 的进程。我注意到的一件事是,目前,根据以下结构,为每个 API 调用创建和关闭 HttpUrlConnection(为了便于阅读,删除了非必要代码和错误处理)。

我没有直接处理http协议的丰富经验,但是根据一般的套接字常识/知识,似乎只创建一次连接并重新使用它,然后重新初始化它会更有效在一个问题上,避免每次都进行连接协商,像这样:

我的问题是:

  • 一般来说,这是一个合理的优化吗(速度增加会很明显)吗?

假设是:

  • 我应该重用输出流以及连接吗?
  • 仅在错误时重新初始化连接是否合理,或者我应该在一定数量的请求/时间后这样做?
0 投票
3 回答
57262 浏览

java - 如何修改 HttpUrlConnection 的标头

我试图稍微改进 Java Html 文档,但我遇到了HttpUrlConntion. 一件事是,如果用户代理是 Java VM,某些服务器会阻止请求。另一个问题是HttpUrlConnection没有设置ReferrerorLocation头字段。由于几个站点使用这些字段来验证内容是从他们自己的站点访问的,因此我也被阻止在这里。据我所知,唯一的解决方案是替换 HTTP 协议的 URL 处理程序。或者有什么办法可以修改默认的 HTTP Handler?

0 投票
12 回答
268749 浏览

java - 连接到需要使用 Java 进行身份验证的远程 URL

如何连接到需要身份验证的 Java 中的远程 URL。我正在尝试找到一种方法来修改以下代码,以便能够以编程方式提供用户名/密码,因此它不会抛出 401。

0 投票
6 回答
80478 浏览

java - Android下载二进制文件问题

我在从 Internet 下载我的应用程序中的二进制文件(视频)时遇到问题。在 Quicktime 中,如果我直接下载它,它可以正常工作,但是通过我的应用程序它会变得一团糟(即使它们在文本编辑器中看起来完全一样)。这是一个例子:

0 投票
2 回答
5868 浏览

java - Java Authenticator 基于每个连接?

我正在构建一个与使用基本身份验证的 REST 接口通信的 Eclipse 插件。当身份验证失败时,我想弹出插件的设置对话框并重试。通常我可以使用 staticAuthenticator.setDefault()为此设置 all 的身份验证器HttpURLConnection,但是由于我正在编写插件,因此我不想覆盖 Eclipse 的默认值Authenticatororg.eclipse.ui.internal.net.auth);

我想Authenticator在加载之前设置我的自定义并在之后将 Eclipse 的默认设置放回原处,但我想这会导致多线程的各种竞争问题,所以我很快就失去了这个想法。

谷歌搜索产生各种结果,基本上告诉我这是不可能的:

Java URLConnection API 应该有一个 setAuthenticator(Authenticator) 方法,以便在需要身份验证的多线程上下文中更轻松地使用此类。

来源

如果应用程序包含很少的第三方插件,并且每个插件都使用自己的 Authenticator,我们应该怎么做?每次调用“Authenticator.setDefault()”方法都会重写之前定义的 Authenticator...

来源

是否有任何不同的方法可以帮助我克服这个问题?

0 投票
1 回答
2275 浏览

java - 来自 HttpURLConnection 的意外结果 - 读取远程二进制文件

我正在尝试从互联网上读取远程二进制文件(例如图像),如下所示:

在本地或本地 Web 服务器 (localhost) 中,它可以完美运行。

但。然后 myUrl 是某个远程 Web 服务器上文件的 URL - 它返回意外结果。例如,从给定文件的来源看来,它似乎重复了一些包(我认为是因为以前的包损坏或某些包),并且由于这种重复,生成的文件通常比原始文件大 10%。因此文件已损坏,无法使用图像查看器正确打开。

我该如何解决这个问题?

0 投票
8 回答
87824 浏览

java - 在 Java 中读取错误响应正文

在 Java 中,当 HTTP 结果为 404 范围时,此代码会引发异常:

就我而言,我碰巧知道内容是 404,但我仍然想阅读响应的正文。

(在我的实际情况下,响应代码是 403,但响应的正文解释了拒绝的原因,我想向用户显示。)

如何访问响应正文?

0 投票
2 回答
1714 浏览

java - HttpURLConnections 忽略超时并且永不返回

尝试从 HttpURLConnection 打开 InputStream 时,我们从某些服务器随机得到一些意外结果。似乎这些服务器会接受连接并使用“保持活动”标头进行回复,这将使 Socket 保持打开状态,但不允许将数据发送回流。

这种情况使多线程爬虫的尝试有点“复杂”,因为如果某些连接被卡住,运行它的线程将永远不会返回......否认它的池的完成,该池在控制器中派生,认为某些线程是还在工作。

是否有某种方法可以读取连接响应标头以识别“保持活动”的答案并避免尝试打开流?

0 投票
8 回答
277514 浏览

java - 如何在 HttpURLConnection 中发送 PUT、DELETE HTTP 请求?

我想知道是否可以将 PUT、DELETE 请求(实际上)发送java.net.HttpURLConnection到基于 HTTP 的 URL。

我已经阅读了很多描述如何发送 GET、POST、TRACE、OPTIONS 请求的文章,但我仍然没有找到任何成功执行 PUT 和 DELETE 请求的示例代码。

0 投票
2 回答
629 浏览

java - Perl 中有没有类似 HttpURLConnection 的东西?

我想创建一个到 PHP 脚本的 HTTPURLConnection 并获取脚本返回的 HTTP 响应。有没有办法在 Perl 中做到这一点?

简而言之,我希望 Perl 等同于以下内容:

我正在尝试搜索类似的 perl 模块,但找不到。任何帮助都会很有用。