0
我是新来的黑莓berry.i我做一项任务,我有一个webservice来显示一些url.i需要回顾它并连接到该url.i尝试与两个线程之一是检索网址,另一个是连接到web服务中的url,但它显示空指针异常。请帮助我。从webservice回收url以及如何连接到该网址
谢谢。
我是新来的黑莓berry.i我做一项任务,我有一个webservice来显示一些url.i需要回顾它并连接到该url.i尝试与两个线程之一是检索网址,另一个是连接到web服务中的url,但它显示空指针异常。请帮助我。从webservice回收url以及如何连接到该网址
谢谢。
由于您尚未发布任何代码,因此诊断问题非常困难。但看看下面的代码,它试图打开一个绝对的网址。这可能会有所帮助。
对于您的两个连接(从Web Service返回的Web Service和URL)都使用此方法。请务必在单独的线程中调用此方法,否则会冻结UI。
public static ResponseBean sendRequestAndReceiveResponse(
String method, String absoluteURL, String bodyData, boolean readResponseBody)
throws IOException
{
ResponseBean responseBean = new ResponseBean();
HttpConnection httpConnection = null;
try
{
String formattedURL = absoluteURL + "deviceside=true;interface=wifi"; // If you are using WiFi
//String formattedURL = absoluteURL + "deviceside=false"; // If you are using BES
//String formattedURL = absoluteURL + "deviceside=true"; // If you are using TCP
if(DeviceInfo.isSimulator()) // if simulator is running
formattedURL = absoluteURL;
httpConnection = (HttpConnection) Connector.open(formattedURL);
httpConnection.setRequestMethod(method);
if (bodyData != null && bodyData.length() > 0)
{
OutputStream os = httpConnection.openOutputStream();
os.write(bodyData.getBytes("UTF-8"));
}
int responseCode = httpConnection.getResponseCode();
responseBean.setResponseCode(responseCode);
if (readResponseBody)
{
responseBean.setBodyData(readBodyData(httpConnection));
}
}
catch (IOException ex)
{
System.out.println("!!!!!!!!!!!!!!! IOException in NetworkUtil::sendRequestAndReceiveResponse(): " + ex);
throw ex;
}
catch(Exception ex)
{
System.out.println("!!!!!!!!!!!!!!! Exception in NetworkUtil::sendRequestAndReceiveResponse(): " + ex);
throw new IOException(ex.toString());
}
finally
{
if (httpConnection != null)
httpConnection.close();
}
return responseBean;
}
public static StringBuffer readBodyData(HttpConnection httpConnection) throws UnsupportedEncodingException, IOException
{
if(httpConnection == null)
return null;
StringBuffer bodyData = new StringBuffer(256);
InputStream inputStream = httpConnection.openDataInputStream();
byte[] data = new byte[256];
int len = 0;
int size = 0;
while (-1 != (len = inputStream.read(data)))
{
bodyData.append(new String(data, 0, len,"UTF-8"));
size += len;
}
if (inputStream != null)
{
inputStream.close();
}
return bodyData;
}
感谢您的回复 – Kotibab 2011-03-14 16:27:55
没有看到代码就无法诊断这类问题。 – 2011-03-11 21:40:58