拥有以下代码:
if (post) {
HttpPost request = new HttpPost(url);
Log.i(TAG, "Posting URL: " + url);
} else {
HttpGet request = new HttpGet(url);
Log.i(TAG, "Getting URL: " + url);
}
...
if (signed) {
OAuthConsumer consumer = getConsumer(prefs);
consumer.sign(request); // here is the error
}
如何解决?
答案 0 :(得分:3)
您需要在if
声明之外定义您的请求:
HttpRequestBase request = null;
if (post) {
request = ...
} else {
request = ...
}
否则您的request
变量的范围仅限于if
声明的正文。
答案 1 :(得分:1)
request
在if (post) {..}
内声明,并再次在else{..}
声明,因此它仅在块结束时存在。要解决此问题,请在request
块之外将if
声明为HttpRequestBase request = null;
,并将其实例化为if-else块中的所需类型。 (HttpPost
和HttpGet
都延伸HttpRequestBase
。