2011-03-11 24 views
0

我是新来的黑莓berry.i我做一项任务,我有一个webservice来显示一些url.i需要回顾它并连接到该url.i尝试与两个线程之一是检索网址,另一个是连接到web服务中的url,但它显示空指针异常。请帮助我。从webservice回收url以及如何连接到该网址

谢谢。

+4

没有看到代码就无法诊断这类问题。 – 2011-03-11 21:40:58

回答

0

由于您尚未发布任何代码,因此诊断问题非常困难。但看看下面的代码,它试图打开一个绝对的网址。这可能会有所帮助。

对于您的两个连接(从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; 
} 
+0

感谢您的回复 – Kotibab 2011-03-14 16:27:55

相关问题