我正在尝试用Java编写一个非常简单的移动html" target="_blank">应用程序(J2ME)。这个想法是通过URL输入访问网站并将网站内容读入缓冲区。
这是问题所在。这对于某些URL而言是完美的,但对于其他URL而言则不是吗?下面的示例(维基百科)可以正常工作。但是以“
http://java.com/en/about/”为例,“ HttpConnection
hc”为getLenght()返回-1,因此没有内容要读入缓冲区吗?
这是我的代码:
String url = "http://en.wikipedia.org/wiki/RSS";
//Sets up HttpConnection and InputStream using the URL variable
HttpConnection hc = null;
InputStream is = null;
try {
hc = (HttpConnection) Connector.open(url);
is = hc.openInputStream();
} catch (IOException ie) {
System.out.println(ie.getMessage());
}
//Reader object created to read input from InputStream
Reader rdr = new InputStreamReader(is);
//Variable "content" will store HTML code
String content = "";
//Get the lenght of the data to set the buffer sizes
int len = (int) hc.getLength();
有任何想法吗?让我知道我是否错过任何事情!
仅供参考,我正在使用Netbeans 6.9.1
HttpConnection的库是“
javax.microedition.io.HttpConnection;”。+“导入javax.microedition.io.Connector;”
来自java.com的HTTP响应是
HTTP/1.1 200 OK
Server: Sun-Java-System-Web-Server/7.0
Date: Wed, 23 Feb 2011 11:07:44 GMT
Content-Type: text/html;charset=UTF-8
Set-Cookie: JSESSIONID=B62F3DFB233BB2806018EC721F6C3FD7; Path=/
Content-Encoding: gzip
Vary: accept-encoding
Transfer-Encoding: chunked
维基百科的HTTP响应是
HTTP/1.0 200 OK
Date: Wed, 23 Feb 2011 10:18:56 GMT
Server: Apache
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Content-Language: en
Vary: Accept-Encoding,Cookie
Last-Modified: Fri, 18 Feb 2011 00:23:59 GMT
Content-Encoding: gzip
Content-Length: 24905
Content-Type: text/html; charset=UTF-8
Age: 2984
X-Cache: HIT from sq61.wikimedia.org, MISS from sq38.wikimedia.org
X-Cache-Lookup: HIT from sq61.wikimedia.org:3128, MISS from sq38.wikimedia.org:80
Connection: keep-alive
如您所见,http://java.com/en/about/的HTTP响应不包含Content-
Length标头,内容是分块的。
因此,getLength()返回-1。
问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:
我试图模拟一些方法调用,但不幸的是我一直返回null。你能帮我指出我可能出错的地方吗?我正在使用time(). thenBack(),我觉得我正确地模拟了返回变量。事先非常感谢。我是JUnit和Mockito的新手,所以如果我错过了任何明显的东西,我很抱歉。 ServiceTest.java Service.java
问题内容: 在下面的代码中,如果字符串在方法调用之前出现,为什么方法在字符串之前输出?为什么它会跳出输出方法的第一部分的形式,然后离开方法以输出字符串,然后返回到方法以输出方法的返回值? 码: 输出: 问题答案: 首先要注意的是,当对两个操作数使用a时,两个操作数之一是a ,表达式的结果是a 。 因此,在以下方法中调用表达式 您正在调用,因为它是type的变量。注意该方法如何接受单个参数。因此,
使用一个新建的包装类来替换一个方法的返回值, 这个类也可以是已存在的类. 操作步骤: 菜单栏: Refactor —> Wrap Return Value...
我需要一个方法,它将接受String数字作为参数,如果它有一个余数,返回双,如果它是十进制,返回int。 我写了这样的代码: 但是,由于这个方法的签名是两倍,它在任何情况下都会返回两倍。 请给我一些提示。
问题内容: 我有一个LinearLayout,此LinearLayout将容纳动态放置的视图。我需要找出LinearLayout子级的宽度,但是必须在onCreate方法中完成。通过研究,我发现您不能通过此方法使用getWidth。因此,我改为使用onWindowFocusChanged,它适用于父级LinearLayout(向我返回实际大小),但不适用于其子级。 我注意到的另一件事是,当屏幕逐渐