这是我的代码在这段代码中的值,我正在获得httpconn = null的值,但在第一行我将值存储到变量httpconn在第一行为什么这样。我得到nullpointerexception。
<>之前公共静态字符串requestToken(){字符串url = const_request_token_url;字符串头= oauth_header(url, HttpProtocolConstants.HTTP_METHOD_GET);字符串requestTokenUrl = concatURL(url, header);HttpConnection = null;输入流输入= null;试一试{httpConn = (HttpConnection) Connector.open(requestTokenUrl);//kris连接httpConn.setRequestMethod (HttpProtocolConstants.HTTP_METHOD_GET);httpConn。setRequestProperty("WWW-Authenticate"、"OAuth领域= http://twitter.com/");httpConn。setRequestProperty("内容类型","应用程序/x-www-form-urlencoded");input = httpConn.openDataInputStream();int resp = httpconnection . getresponsecode ();if (resp == HttpConnection.HTTP_OK){StringBuffer = new StringBuffer();int ch;While ((ch = input.read()) != -1){缓冲区。附加((char) ch);}字符串内容= buffer.toString();Const。token = content.substring(content.indexOf((constt . oauth_token +"="))+(constt . oauth_token +"=").length(), content.indexOf('&'));Const。tokenSecret = content.substring(content.indexOf((constt . oauth_token_secret +"="))+(constt . oauth_token_secret +"=").length(), content.length());message = httpconnection . getresponsemessage ();}返回消息;//(getTwitterMessage (httpConn.getResponseCode ()));}catch (IOException){返回"异常";}catch(异常nc){返回"noConnection";} finally {尝试{httpConn.close ();input.close ();} catch (IOException e) {e.printStackTrace ();}在finally
块中,执行
if (httpConn != null)
httpConn.close();
if (input != null)
input.close();
如果例如在你发布的代码Connector.open()
抛出异常,httpConn
将不会初始化为null
以外的任何东西。您将捕获该异常并希望返回与之相关的信息,但在返回之前,您尝试访问一个空指针(在finally
块中),这会引发NullPointerException
。
当:
当应用程序试图使用null时抛出是必需的。这些包括:
- 调用null对象的实例方法。
- 访问或修改a的字段空对象。
- 将null的长度视为null
- 访问或修改
- 抛出null,就好像它是Throwable价值。
所以这表明你的httpConn = (HttpConnection) Connector.open(requestTokenUrl); // kris connection
不工作。检查