Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpResponse response=client.execute(httpGet),HttpResponse之后的代码不';跑不动_Java_Php_Android - Fatal编程技术网

Java HttpResponse response=client.execute(httpGet),HttpResponse之后的代码不';跑不动

Java HttpResponse response=client.execute(httpGet),HttpResponse之后的代码不';跑不动,java,php,android,Java,Php,Android,我试图从我的网站上获取数据/http://localhost/android_connection/getHttpGet.php它遵循此站点的代码 “/http://localhost/android_connection/getHttpGet.php“紧跟这一行之后: Server Date/Time : 2014-06-04 04:28:49 我正在对本地主机使用Xampp 在android编程中 >>HttpResponse response=client.execute(httpGet

我试图从我的网站上获取数据
/http://localhost/android_connection/getHttpGet.php
它遵循此站点的代码

/http://localhost/android_connection/getHttpGet.php
“紧跟这一行之后:

Server Date/Time : 2014-06-04 04:28:49
我正在对本地主机使用Xampp

在android编程中 >>HttpResponse response=client.execute(httpGet)之后的代码不会通过捕获log.e来运行。Log.e(“error1.1”,“试用前”);和Log.e(“error1.2”,“在HttpResponse之前”);只出现在我的日志上

我不知道如何修复plz帮助我,顺便说一下,我是通过android应用程序使用webserver编程的初学者

public class MainActivity extends Activity {

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Permission StrictMode


        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }

        final TextView result = (TextView) findViewById(R.id.result);
        final Button btnGet = (Button) findViewById(R.id.btnGet);

        btnGet.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                String url = "http://localhost/android_connection/getHttpGet.php";
                String resultServer  = getHttpGet(url);
                result.setText(resultServer);
            }
        });
    }

    public String getHttpGet(String url) {

        StringBuilder str = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);
        Log.e("error1.1","Before try");
        try {
            Log.e("error1.2", "Before HttpResponse");
            HttpResponse response = client.execute(httpGet);
            Log.e("error1.3", "End of HttpResponse");
            StatusLine statusline = response.getStatusLine();
            int statusCode = statusline.getStatusCode();
            if (statusCode == 200) { // Status OK
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    str.append(line);
                    Log.e("error2","line : " + line);
                }
            }


        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return str.toString();
    }
}

问题在于您的服务器url,android设备无法识别本地主机url,因为这是您的机器url。我个人建议您通过计算机IP访问XAMP服务器,但如果您正在使用emulator并希望使用本地主机,请仅将url更改为10.0.2.2。请参阅

我认为这一行有一个异常
HttpResponse response=client.execute(httpGet)请检查您的日志,并更新到您的问题中。我想您会遇到NetworkOnMainThread异常。如果是,请在AsyncTask或new Thread()中调用getHttpGet(){@Override public void run(){//code here}}.start();QAMAR您可以写一下如何在AsyncTask中调用getHttpGet(),因为我在本主题中是新手,我不知道AsyncTask如何工作并编写它。顺便问一下,什么是NetworkOnMainThread异常?在logcat中,它有06-04 W/System.err(4309):org.apache.http.conn.HttpHostConnectException:连接被拒绝>>>是代码问题吗?许多人都提到错误可能是由于NetworkOnMainThreadException造成的,但这是不可能的,因为代码中实现了严格的策略。我使用的是真正的设备LG G2。我认为我的服务器还可以,因为我可以在chrome浏览器上运行该url,也可以在chrome浏览器上管理我的数据库。顺便说一下,现在我正在学习上面推荐的异步任务。你能从你的LG G2设备打开服务器吗?我不认为这是可能的,甚至你的设备如何识别什么是本地主机?Aysnc任务是一件您必须实现的事情,但这并不是这个问题的解决方案。它可以在真实设备和EMU上工作。我所做的只是更改字符串url=“”;>>>>String url=“运行Web服务器***/android\u connection/getHttpGet.php的计算机的http/***IP”;是的,我从一开始就是这么说的,虽然很高兴它成功了,但仍然不知道为什么人们会否决它。