0

HTTPリクエストを作成してAndroidでMySQLデータを更新しようとしていますが、エラーが発生します

「タイプの不一致:org.apache.http.HttpResponseからcom.google.api.client.http.HttpResponseに変換できません」

このコード行「httpClient.execute(httpPost)」

HttpResponse response = httpClient.execute(httpPost);

org.apache.httpを追加することで、すばやく修正するオプションが提供されます。

org.apache.http.HttpResponse response = httpClient.execute(httpPost);

誰かが私がここで間違っていることを教えてもらえますか?どうもありがとう!

protected String doInBackground(String... params) {

    HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost("http://---.com/---/approve_request.php");

    List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
    nameValuePair.add(new BasicNameValuePair("status", "Approved"));

    try {
          httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
        } catch (UnsupportedEncodingException e) {              
           e.printStackTrace();
        }

           try {
              org.apache.http.HttpResponse response = httpClient.execute(httpPost);  
              Log.d("Http Response:", response.toString());

         } catch (ClientProtocolException e) {             
              e.printStackTrace();

         } catch (IOException e) {              
              e.printStackTrace();

         }

    return null;
    }
4

5 に答える 5

5

コードに間違ったインポートステートメントがあります。

クラスのトップに行き、探します

import com.google.api.client.http.HttpResponse

に置き換えます

import org.apache.http.HttpResponse
于 2012-11-01T18:17:24.250 に答える
2

import org.apache.http.HttpResponse; の代わりに使用import com.google.api.client.http.HttpResponse;

于 2012-11-01T18:21:59.803 に答える
2
    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 org.apache.http.message.BasicNameValuePair;

     InputStream is = null;
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("status", "Approved"));


        try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                ""http://---.com/---/approve_request.php"");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection " + e.toString());
    }
于 2012-11-01T18:32:31.823 に答える
1

あなたは持っているでしょう

    import com.google.api.client.http.HttpResponse;

ソースコードの上部にあるインポートリストにあります。

更新してください

    import org.apache.http.HttpResponse;.

httpClient.execute(httpPost);はオブジェクトを返してorg.apache.http.HttpResponseいますが、インポートタイプが正しくないため、オブジェクトをにキャストしようとしていますcom.google.api.client.http.HttpResponse。これが問題の原因です。

于 2012-11-01T18:17:57.163 に答える
1

org.apache.http.HttpResponsecom.google.api.client.http.HttpResponseは2つの完全に別個の異なるJavaクラスです。単純に一方を取得してもう一方に変換することはできません。Apacheを使用している場合は、Androidバージョンではなく、HttpClient常にが返されます。org.apache.http.HttpResponse本当にApacheのHttpClientを使用したい場合は、AndroidバージョンのHttpResponseではなくApacheバージョンに固執し、必要に応じてヘッダー/コンテンツを直接抽出することをお勧めします。

于 2012-11-01T18:18:24.870 に答える