如何解决问题'请求无法解析为android上的变量'?

时间:2011-03-30 19:13:34

标签: android http if-statement

拥有以下代码:

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
}

如何解决?

2 个答案:

答案 0 :(得分:3)

您需要在if声明之外定义您的请求:

HttpRequestBase request = null;

if (post) {
    request = ...
} else {
    request = ...
}

否则您的request变量的范围仅限于if声明的正文。

答案 1 :(得分:1)

requestif (post) {..}内声明,并再次在else{..}声明,因此它仅在块结束时存在。要解决此问题,请在request块之外将if声明为HttpRequestBase request = null;,并将其实例化为if-else块中的所需类型。 (HttpPostHttpGet都延伸HttpRequestBase