gpt4 book ai didi

java - 如何清除j2me midlet 连接http 和发送短信时的IOExceptionE 错误?

转载 作者:行者123 更新时间:2023-11-29 05:57:20 25 4
gpt4 key购买 nike

我正在研究 j2me Mobile 应用程序部分。我必须使用 http 连接和短信格式(使用短信网关)发送消息。

当我尝试执行此操作时,java.io.IOException: Resource limit exceeded for file handles 正在我的控制台中抛出。

如何避免这种情况?这是我的连接代码:

public boolean sendViaHTTP(String message)
{

System.out.println("enter HTTP Via");
HttpConnection httpConn = null;

String url = "http://xxx.com/test.php";

System.out.println("URL="+url);
InputStream is = null;
OutputStream os = null;
try
{
// Open an HTTP Connection object
httpConn = (HttpConnection)Connector.open(url);
// Setup HTTP Request to POST
httpConn.setRequestMethod(HttpConnection.POST);
httpConn.setRequestProperty("User-Agent",
"Profile/MIDP-2.0 Confirguration/CLDC-2.0");
httpConn.setRequestProperty("Accept_Language","en-US");
//Content-Type is must to pass parameters in POST Request
httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
String value = System.getProperty("com.nokia.network.access");
os = httpConn.openOutputStream();
String params;
params = "message=" + message;
os.write(params.getBytes());// input writes in server side

// Read Response from the Server
StringBuffer sb = new StringBuffer();
is = httpConn.openDataInputStream();
int chr;
while ((chr = is.read()) != -1)
sb.append((char) chr);

Response = sb.toString();

//switchDisplayable("", getForm());

//System.out.println("REsponse="+Response);
}
catch(IOException ex)
{
System.out.println(ex);
return false;
}
catch (Exception ex)
{
System.out.println(ex);
return false;
}
finally
{
try
{
if(is!= null)
is.close();
if(os != null)
os.close();
if(httpConn != null)
httpConn.close();
}
catch (Exception ex)
{
System.out.println(ex);
}
}
return true;

}

最佳答案

该异常(很可能)发生是因为在您的应用程序中的某个地方,您在完成读取/写入流后没有关闭流。

为了说明,如果这个语句

   if (is != null) is.close();

抛出异常(例如IOException),则finally block 中的剩余语句将不会执行。这可能会泄漏文件描述符。

问题也可能完全出在代码的另一部分,但异常消息清楚地指出您的应用程序使用了太多文件描述符的问题,最可能的原因是资源泄漏。

关于java - 如何清除j2me midlet 连接http 和发送短信时的IOExceptionE 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573296/

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