Java 从android向servlet发送GET请求时出错

Java 从android向servlet发送GET请求时出错,java,android,servlets,Java,Android,Servlets,在四处搜索之后,我能够从我的servlet中检索到响应,但是我无法将参数(用户名和密码参数)从android发送到servlet!我的logcat显示此错误: 04-0java.lang.ClassCastException: org.apache.http.client.methods.HttpGet cannot be cast to org.apache.http.HttpResponse at com.example.httpgetandroidexample.MainActivity$

在四处搜索之后,我能够从我的servlet中检索到响应,但是我无法将参数(用户名和密码参数)从android发送到servlet!我的logcat显示此错误:

04-0java.lang.ClassCastException: org.apache.http.client.methods.HttpGet cannot be cast to org.apache.http.HttpResponse
at com.example.httpgetandroidexample.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:76)
at com.example.httpgetandroidexample.MainActivity$AsyncTaskRunner.doInBackground(MainActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
我不明白为什么! 这是我的android主要活动:

package com.example.httpgetandroidexample;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

               public TextView content;
                EditText name,pass;
                String URL,nameValue,passValue;
            @Override
            protected void onCreate(Bundle savedInstanceState) {

                      super.onCreate(savedInstanceState);
                     setContentView(R.layout.activity_main);

                     name      =  (EditText)findViewById(R.id.name);
                     pass       =  (EditText)findViewById(R.id.pass);
                     content       =  (TextView)findViewById(R.id.text);

                   Button button=(Button)findViewById(R.id.but);
                   try {
                    nameValue    =URLEncoder.encode(name.getText().toString(), "UTF-8");
                    passValue    =URLEncoder.encode(pass.getText().toString(), "UTF-8");
                       URL = "http://10.0.2.2:8080/login/web";
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

                   button.setOnClickListener(new View.OnClickListener() {
                       @Override
                       public void onClick(View v) {
                        AsyncTaskRunner runner = new AsyncTaskRunner();
                        runner.execute(new String[ ] { URL });
                       }
                      });


   }
            private class AsyncTaskRunner extends AsyncTask<String, Void, String> {


                @Override
                protected String doInBackground(String... urls) {

                  String response = "";
                  for (String url : urls) {
                    DefaultHttpClient client = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet(url);
                    try {
                        List<NameValuePair> postParameters = 
                                new ArrayList<NameValuePair>();
                            postParameters.add(new BasicNameValuePair("user",nameValue));
                            postParameters.add(new BasicNameValuePair("pass",passValue));
                            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(
                                    postParameters);
                            ((HttpResponse) httpGet).setEntity(formEntity);
                      HttpResponse execute = client.execute(httpGet);
                      InputStream content = execute.getEntity().getContent();

                      BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                      String s = "";
                      while ((s = buffer.readLine()) != null) {
                        response += s;
                      }

                    } catch (Exception e) {
                      e.printStackTrace();
                    }
                  }
                  return response;
                }

                @Override
                protected void onPostExecute(String result) {
                  content.setText(result);
                }
              }
}
package com.example.httpgetandroidexample;
导入java.io.BufferedReader;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.UnsupportedEncodingException;
导入java.net.urlcoder;
导入java.util.ArrayList;
导入java.util.List;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
公共文本查看内容;
编辑文本名称,通过;
字符串URL、nameValue、passValue;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText)findViewById(R.id.name);
pass=(EditText)findViewById(R.id.pass);
content=(TextView)findViewById(R.id.text);
Button Button=(Button)findViewById(R.id.but);
试一试{
nameValue=URLEncoder.encode(name.getText().toString(),“UTF-8”);
passValue=URLEncoder.encode(pass.getText().toString(),“UTF-8”);
URL=”http://10.0.2.2:8080/login/web";
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
AsyncTaskRunner=新建AsyncTaskRunner();
execute(新字符串[]{URL});
}
});
}
私有类AsyncTaskRunner扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串响应=”;
for(字符串url:url){
DefaultHttpClient=新的DefaultHttpClient();
HttpGet HttpGet=新的HttpGet(url);
试一试{
列出后参数=
新的ArrayList();
添加(新的BasicNameValuePair(“用户”,名称值));
添加(新的BasicNameValuePair(“pass”,passValue));
UrlEncodedFormEntity formEntity=新的UrlEncodedFormEntity(
后参数);
((HttpResponse)httpGet).setEntity(formEntity);
HttpResponse execute=client.execute(httpGet);
InputStream内容=execute.getEntity().getContent();
BufferedReader buffer=新的BufferedReader(新的InputStreamReader(内容));
字符串s=“”;
而((s=buffer.readLine())!=null){
响应+=s;
}
}捕获(例外e){
e、 printStackTrace();
}
}
返回响应;
}
@凌驾
受保护的void onPostExecute(字符串结果){
content.setText(结果);
}
}
}
有人知道吗

更新:

now i have changed my android code like this:
package com.example.httpgetandroidexample;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

               public TextView content;
                EditText name,pass;
                String URL;
            @Override
            protected void onCreate(Bundle savedInstanceState) {

                      super.onCreate(savedInstanceState);
                     setContentView(R.layout.activity_main);

                     name      =  (EditText)findViewById(R.id.name);
                     pass       =  (EditText)findViewById(R.id.pass);
                     content       =  (TextView)findViewById(R.id.text);

                   Button button=(Button)findViewById(R.id.but);
                   try {
                    String nameValue    ="user="+URLEncoder.encode(name.getText().toString(), "UTF-8");
                    String passValue    ="&pass="+URLEncoder.encode(pass.getText().toString(), "UTF-8");
                       URL = "http://10.0.2.2:8080/login/web?"+nameValue+passValue;
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

                   button.setOnClickListener(new View.OnClickListener() {
                       @Override
                       public void onClick(View v) {
                        AsyncTaskRunner runner = new AsyncTaskRunner();
                        runner.execute(new String[ ] { URL });
                       }
                      });


   }
            private class AsyncTaskRunner extends AsyncTask<String, Void, String> {


                @Override
                protected String doInBackground(String... urls) {

                  String response = "";
                  for (String url : urls) {
                    DefaultHttpClient client = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet(url);
                    try {

                      HttpResponse execute = client.execute(httpGet);
                      InputStream content = execute.getEntity().getContent();

                      BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                      String s = "";
                      while ((s = buffer.readLine()) != null) {
                        response += s;
                      }

                    } catch (Exception e) {
                      e.printStackTrace();
                    }
                  }
                  return response;
                }

                @Override
                protected void onPostExecute(String result) {
                  content.setText(result);
                }
              }
}
现在我更改了我的android代码如下:
包com.example.httpgetandroidexample;
导入java.io.BufferedReader;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.UnsupportedEncodingException;
导入java.net.urlcoder;
导入java.util.ArrayList;
导入java.util.List;
导入org.apache.http.HttpResponse;
导入org.apache.http.NameValuePair;
导入org.apache.http.client.entity.UrlEncodedFormEntity;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.http.message.BasicNameValuePair;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
公共文本查看内容;
编辑文本名称,通过;
字符串URL;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText)findViewById(R.id.name);
pass=(EditText)findViewById(R.id.pass);
content=(TextView)findViewById(R.id.text);
Button Button=(Button)findViewById(R.id.but);
试一试{
String nameValue=“user=“+URLEncoder.encode(name.getText().toString(),“UTF-8”);
字符串passValue=“&pass=“+URLEncoder.encode(pass.getText().toString(),“UTF-8”);
URL=”http://10.0.2.2:8080/login/web?“+nameValue+passValue;
}捕获(不支持的编码异常e){
((HttpResponse) httpGet).setEntity(formEntity);
package com.example.httpgetandroidexample;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

               public TextView content;
                EditText name,pass;
                String URL,nameValue,passValue;
            @Override
            protected void onCreate(Bundle savedInstanceState) {

                      super.onCreate(savedInstanceState);
                     setContentView(R.layout.activity_main);

                     name      =  (EditText)findViewById(R.id.name);
                     pass       =  (EditText)findViewById(R.id.pass);
                     content       =  (TextView)findViewById(R.id.text);
                     content.setText("Vendosni Perdoruesin dhe Fjalekalimin");
                   Button button=(Button)findViewById(R.id.but);



                   button.setOnClickListener(new View.OnClickListener() {
                       @Override
                       public void onClick(View v) {
                           nameValue="&user="+name.getText().toString();
                           passValue    ="&pass="+pass.getText().toString();
                           URL = "http://10.0.2.2:8080/login/web2?activitetiNR=1"+nameValue+passValue;
                        AsyncTaskRunner runner = new AsyncTaskRunner();

                           Log.i("url",URL);
                           Log.i("url",nameValue);
                           Log.i("url",passValue);
                        runner.execute(new String[ ] { URL });
                       }
                      });


   }
            private class AsyncTaskRunner extends AsyncTask<String, Void, String> {


                @Override
                protected String doInBackground(String... urls) {

                  String response = "";
                  for (String url : urls) {
                    DefaultHttpClient client = new DefaultHttpClient();
                    HttpGet httpGet = new HttpGet(url);
                    try {

                      HttpResponse execute = client.execute(httpGet);
                      InputStream content = execute.getEntity().getContent();

                      BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                      String s = "";
                      while ((s = buffer.readLine()) != null) {
                        response += s;
                      }

                    } catch (Exception e) {
                      e.printStackTrace();
                    }
                  }
                  return response;
                }

                @Override
                protected void onPostExecute(String result) {
                  content.setText(result);
                }
              }
}