问题标签 [httpsurlconnection]

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 回答
6234 浏览

java - 如何从 Java 应用程序访问 HTTPS url

我知道这是一个非常基本的问题,但是我如何设法找不到解决此问题的方法。我有一个具有 main 方法的 java 类。在该方法中,我尝试访问 https url,如下所示:

在执行这个程序时,我得到的输出是:

我想我在这里犯了一个非常基本的错误。

我正在使用 JDK 1.7.0_25。

0 投票
1 回答
705 浏览

android - 您的浏览器发送了此服务器无法理解 HttpsURLConnection 的请求

我正在制作一个登录应用程序来从代码中出现的链接中检索一些信息。我的问题是我在日志文件中收到“400 错误请求。您的浏览器发送了此服务器无法理解的请求。[...] 服务器位于 idp.tut.fi 端口 443”。

此外,该链接处理带有 SHA1 的 RC4_128 用于身份验证和 RSA 用于密钥交换,但我真的不知道我可以在我的代码中在哪里应用这些协议。

谢谢你的帮助!

这是我的代码:

}

0 投票
1 回答
2413 浏览

java - Google 的 oauth 端点正在返回“错误请求”……但为什么呢?

在https://accounts.google.com/o/oauth2/token请求令牌时,在谷歌上搜索“错误请求”的可能原因后,我决定问为什么无法获取此代码只不过是来自服务器的“错误请求”响应......

我确实必须设置con.setChunkedStreamingMode(0),因为服务器返回了与内容长度相关的错误。

有任何想法吗?是否有必要将有效载荷放在一行中?如何?

0 投票
3 回答
506 浏览

android - Android - HttpsURLConnection 不工作

我编写了这个 AsyncTask 用于通过 Android 手机上的 HttpsURLConnection 发送一小段 json。它不会在 LogCat 中引发任何异常。但是我的 Node.JS 服务器(HTTPS!)没有收到任何请求。这段代码有什么问题?感谢您的答复!

日志输出:

解决方案:我必须得到响应,即使我不想要它。我在“NetworkCommunication::DataOutputStream”之后添加了这段代码,它起作用了!

0 投票
1 回答
928 浏览

java - 带有授权的 HttpsUrlConnection 似乎切断了 GET 请求中的 url 参数

我正在尝试通过 HTTPS 建立连接。我还将请求标头中的“授权”属性设置为基本,并相应地提供编码的身份验证字符串。

我检查了 Firefox 插件 HttpRequester 并且一切正常,这意味着我输入了 URL,选择“GET”作为请求方法,将授权添加到标题中,然后按提交后我返回一些只有经过适当授权的用户才能获得的 xml .

不幸的是,我既不能为您提供实际的身份验证信息,也不能为您提供 SSCCE 中的真实网址。但是,我可以告诉你,Auth 似乎有效,因为我收到了 200 响应。我还将 Auth 更改为错误的值,然后得到“需要 401 授权”响应。

实际上,似乎“?myparam = xyz”以某种方式被切断了,因为当我从url中删除此参数并再次使用Firefox HttpRequester进行测试时,我得到了与Java中相同的响应。

不幸的是,我无法访问“theirdomain.com”,所以我不知道服务器端发生了什么。但由于它适用于 Firefox HttpRequester,它也应该适用于 Java。

可能是什么原因?谢谢你的帮助!

编辑:我将网址更改为“ https://www.google.com/search?q=foo ”并评论了这一行:

我可以从返回的字符串中看到,谷歌收到了“foo”。因此,显然 Authorization 和 get 参数的组合似乎是问题所在,因为两者都可以正常工作。

SSCCE:

0 投票
0 回答
260 浏览

java - 无法使用 Android 应用程序登录网站

我正在尝试使用我在 Eclipse (Android v. 4.3) 中编写的 Android 应用程序连接到我大学的网站,提供我的凭据,然后保持登录状态以下载我的课程表。我已经搜索了这些论坛几天并尝试了许多不同的方法。

我可以使用 Java 中的 HtmlUnit 轻松完成这项任务。我可以访问网站、登录并转到包含我需要的数据的页面。但是,HtmlUnit 不能很好地与 Android 应用程序配合使用,因为它使用了许多具有依赖关系的外部库,这些依赖项会导致可怕的 dalvikvm 1 错误。

我尝试与 Jsoup、HttpsURLConnection 和 HtmlClient 建立连接。我尝试的所有方法都有相同的结果,即我可以“获取”网站数据,但不能“发布”到它。我已尝试设置 cookie,代码位于 AsyncTask 中,并且我已确保已设置清单 Internet 权限。

这是我尝试过的一些示例代码:

HtmlClient 尝试:

Log.d 输出:

Jsoup 尝试:

Log.d 输出:

System.err 输出:

HttpsURLConnection 尝试:

Log.d 输出:

如果您尝试在未登录的情况下访问“ https://star.wvu.edu/pls/starprod/bwskcrse.P_CrseSchdDetl ”(即登录提示),则在此显示的 html 是您所得到的。

所有尝试都有相同的结果,我可以“获取”我想要的网站,即https://star.wvu.edu/pls/starprod/twbkwbis.P_WWWLogin,并查看它的 HTML,但我不能“发布”任何登录信息,因为它返回 404 File Not Found 错误。

我是 Android 和 http 连接的新手,我束手无策,谁能帮忙?

编辑:

这是在 Android 之外使用 HtmlUnit 的工作代码:

它的输出:

0 投票
2 回答
584 浏览

android - 如何将图像或文件写入 httpsurlconnection?

我从画廊意图中获得了图像。那就是我在android中得到了一个图像的uri。如何将图像或文件写入 httpsurlconnection 以上传到服务器。请帮助。

0 投票
1 回答
125 浏览

java - 从 HttpsURLConnection 获取响应码失败

我正在尝试从 URL 获取响应代码:

我已经在我的网络中使用多个 URL 进行了尝试。对于某些人来说,它工作正常。它完美地告诉我响应代码。但是,对于其他链接,它给了我一个 401(即使我可以通过 Chrome 访问它)并给我以下错误:

我认为这可能是身份验证问题。因此,在创建“urlConnection”之后,我还添加了以下代码:

但是,这仍然给了我一个 401 并给了我与上面相同的错误消息。

关于可能导致此问题的任何想法或信息都会很棒。提前致谢。

0 投票
1 回答
289 浏览

java - HTTP 客户端必须关闭它们的连接

我有一个 servlet,它以 XML 格式响应。

客户端通过 httpsURLConnection 连接到这个 servlet。现在如果客户不打电话有问题connection.disconnect()吗?

让我们按照这种情况:

现在客户端必须发布用户名和密码,如果成功,他可以发布新的参数,如task=getSomeData,...etc. 在断开之前。

对于每个连接,客户端都会成为新的 httpsession。

如果客户端不调用connection.dissconnect(),会话超时后连接会自动关闭吗?如果没有,那么什么时候?它还能活多久?如果有太多“未断开”连接,服务器会出现问题吗?

更新:示例客户端

客户端不设置超时,在这种情况下,如果这个客户端不调用disconnect(),服务器会使用哪个超时?Servlet 容器连接器超时?但是改变它会影响这个容器中的所有应用程序。

默认的 Tomcat 连接器超时为 20000 = 2 分钟,这是否意味着,我最多只能在 2 分钟内使用我打开的连接?2分钟后会自动断开吗?

非常感谢。

0 投票
2 回答
2032 浏览

java - HttpsURLConnection - 间歇性连接被拒绝错误

我正在通过 java 应用程序和 HttpsURLConnection 实现连接到 Web 服务。我打开连接,使用资源块尝试打开(并在完成后关闭)输入流和输入流阅读器,然后在 finally 块中调用 connection.disconnect。代码如下,它大部分时间都有效。

但是,这段代码可以在一秒钟内被多个线程调用多次(尽管实际的包含方法是同步的,因此一次只能有一个线程访问该连接)。在与我们的网络人员合作时,我们发现即使应用程序调用“connection.disconnect()”,服务器上的连接也不会立即断开。我们在服务器日志中看到断开连接的调用,但 java 应用程序在服务器完全断开连接之前尝试再次连接,从而导致“连接被拒绝错误”。

无论如何在再次连接之前通过java强制完全断开连接,或者在调用断开连接时通过服务器设置强制断开连接?或者有一种方法让它发生得更快,从而减少出错的可能性?我可以重试连接,直到它成功连接,但这似乎是一个 hack。

谁能帮我指出正确的方向?

更新 - 2013年 1 月 6 日 - 随着我继续调查,我通过阅读 tcpdump 发现我的客户端在同一端口上连接了 100 个请求,然后在第 101 个请求时,端口发生了变化,我得到了错误。连接最终将恢复并开始在新端口上发送和接收请求,但可能需要一分钟才能恢复。我在下面包含了 tcpdump。可以看到,当客户端在新端口上发送时,目标 ip 在新端口上返回一个“R”eset。因此,我认为错误是目的地错误的结果,而不是来自我的客户,但我仍在尝试验证,因为我在这个级别的理解是有限的。