每个人,
我正在尝试用 Java 编写一个小程序,它将访问视频游戏的应用程序编程接口 (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 美元到零?
无论如何,感谢您克服这个障碍。尊敬的,询问