2

多くの人が私のような問題を抱えていることは知っていますが、私が見つけた答えはうまくいかなかったようです.

import android.os.AsyncTask;



import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

/**
 * Created by DJ on 6/29/2014.
 */
public class RetrieveTask extends AsyncTask<String, Void, String> {

    protected String doInBackground(String... values){
        String result;
        try{
            ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
            HttpClient httpc = new DefaultHttpClient();
            HttpPost httpp = new HttpPost("http://" + values[0] + "/AndroidConnection/Select.php");
            httpp.setEntity(new UrlEncodedFormEntity(nvp));
            HttpResponse httpr = new httpc.execute(httpp);
            HttpEntity httpe = httpr.getEntity();
            InputStream is = httpe.getContent();

            BufferedReader br = new BufferedReader(new InputStreamReader(is, "iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;

            while((line = br.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();

        } catch(Exception e){
            return e.getMessage();
        }

        return result;
    }

}
`

このコードでわかるように、私は HttpClient.execute コマンドを使用しましたが、Android スタジオは .execute コマンドをエラーとして参照しています: cannot resolve symbol 'execute'.

私はすでにキャッシュの無効化と再起動を試みました。また、Maven の自動インポート チェック ボックスをオンにしました。

OS: win7 32bit JDK: jdk7(Java EE) Android Studio: 8.0 beta

4

1 に答える 1

1

次の行の を削除しnewます。

HttpResponse httpr = new httpc.execute(httpp);

新しいオブジェクトを作成する必要はありません。メソッドを呼び出すだけですexecute

于 2014-06-29T14:04:36.437 に答える