📄 httpdata.java
字号:
/*
版权声明
本程序作者是 www.kbao.com 保留所有权利
我们对于本软件不作任何保证, 不管是明确的表达还是隐含的推论.
本软件可用于任何目的, 包括商业目的, 我们不作任何限制和不承担任何责任.
再分发本程序或者它的修改程序, 请保留本版权声明
如果你对于本软件有任何修改,你可以访问我们的网站相关页面
http://www.kbao.com/bbs/bbsview.php?bbsid=StockDev
并将新的程序上传. 我们将非常欢迎和尊重你的努力.
*/
package kbaohttpstock ;
import java.io.*;
import javax.microedition.io.*;
public class HttpData extends Thread
{
public int tag ;
private String url ;
private HttpDataListener listener ;
public HttpData( String ur , HttpDataListener ls )
{
url = ur ;
listener = ls ;
}
public void run( )
{
byte[] data = getHttpData( url );
//if( data != null )
if( listener != null )
listener.receiveHttpData(this, data);
}
private byte[] getHttpData(String url)
{
HttpConnection connection = null;
DataInputStream iStrm = null ;
byte[] httpdata = null;
try
{
connection = ( HttpConnection ) Connector.open(url);
iStrm = connection.openDataInputStream();
int status = connection.getResponseCode();
if ( status == HttpConnection.HTTP_OK )
{
int length = (int) connection.getLength();
//System.out.print( "http response length=" );
//System.out.println( String.valueOf( length ) );
/* 下面代码容易造成 out of heap memory
if ( length != -1 )
{
httpdata = new byte[length];
iStrm.readFully(httpdata);
} */
if ( length != -1 )
{
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int i=0;
for( ; i<length ; i++ )
{
int ch = iStrm.read() ;
if( ch == -1 ) break ;
bStrm.write(ch);
}
if( i == length )
httpdata = bStrm.toByteArray();
bStrm.close();
}
else
{
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int ch;
while ((ch = iStrm.read()) != -1)
bStrm.write(ch);
httpdata = bStrm.toByteArray();
bStrm.close();
}
}
}
catch( IOException e )
{
httpdata = null;
}
finally
{
try
{
if (connection != null)
connection.close();
if( iStrm != null )
iStrm.close( );
}
catch( IOException e ){ }
}
return httpdata ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -