gpt4 book ai didi

java - 无法在小程序中 getInputStream()

转载 作者:行者123 更新时间:2023-11-30 05:03:53 26 4
gpt4 key购买 nike

大家

我正在尝试用 Java 编写一个小程序,该小程序将访问视频游戏的应用程序编程接口(interface) (API),虽然我可以通过 Eclipse IDE 成功运行该小程序,但从浏览器运行时它始终挂起。

我通过分散调试消息直到找到最后一行运行来缩小错误所在的范围。

我正在尝试解析参数填充 URL 的输出。考虑到浏览器必须以不同于 IDE 的方式传递此信息,我尝试了许多不同的方法来执行此操作,包括通过 http 套接字 POST 参数(尽管我不熟悉此方法,并且很容易错误地实现它)。下面是我当前的版本,省略了不相关的部分(如果你推断错误可能在省略的区域,这些很容易被发现):

...
URL apiCharList = null;
...
try {
...
apiCharList = new URL("https:// ... ");
URLConnection connection = apiCharList.openConnection();
connection.connect();
DataInputStream in = new DataInputStream( new BufferedInputStream( connection.getInputStream() ) );
BufferedReader br = new BufferedReader( new InputStreamReader( in ) );
String line = br.readLine();
while( line != null ) {
...
line = br.readLine();
}
...
} catch (MalformedURLException e) {
current.setText( "Malformed URL" );
} catch (IOException e) {
current.setText( "InputStream fail." );
}

我的调试使我陷入:

connection.connect();

如果没有那行,则位于:

DataInputStream in = new DataInputStream( new BufferedInputStream( connection.getInputStream() ) );

非常感谢对此问题的任何见解。再次,只需让我知道是否/哪些省略的区域可能需要查看。

尊敬的,询问

更新

谢谢大家的回复。我的 BufferedReader 现在初始化为:

= new BufferedReader( new InputStreamReader( connection.getInputStream() ), 1 );

作为我尝试过的所有各种方法的组合,该部分一直在跳跃;谢谢你帮我解决了这个问题。从我所看到的来看,问题似乎是我的小程序需要进行数字签名,以便在通过浏览器运行时建立所需的连接。我一直在研究这个问题,并且在下载最新的 JDK 后,keytool 和 jarsigner 出现了问题。我只接触了很短一段时间,以前从未有过数字签名的小程序,但至少我有一个新的追求途径。如果有人能够提供有关如何对小程序进行数字签名的良好(最新)演练,我们将不胜感激。我读过的各种资料都说它可能会花费我 40 美元到 20 美元甚至零?

无论如何,感谢您帮助我们克服了这一障碍。谨此,询问

最佳答案

默认情况下,浏览器不允许小程序在除其原始服务器之外的任何地方建立网络连接。您需要对小程序进行数字签名,然后请求用户允许进行连接。另一种方法是在您的 Web 服务器上运行一个简单的代理 servlet,小程序可以使用该代理 servlet 与第三方服务器进行通信。

顺便说一句,为什么你要互相缠绕这么多流——其中两个是缓冲的,这是一个巨大的禁忌——只是为了从网络上读取?这两行可以替换为

BufferedReader br = new BufferedReader( new InputStreamReader( connection.getInputStream() ), 1 );

请注意,我在末尾插入了“,1”,这会关闭 BufferedReader 的缓冲。您不想在网络连接上提前阅读,或者您正在邀请您的代码挂起。

关于java - 无法在小程序中 getInputStream(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5752025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com