Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
接收从php到android的请求_Php_Android_Wamp - Fatal编程技术网

接收从php到android的请求

接收从php到android的请求,php,android,wamp,Php,Android,Wamp,我无法从包含 package com.sunil.phpconnect; import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.ht

我无法从包含

package com.sunil.phpconnect;

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    HttpClient httpclient;
    HttpGet request;
    HttpResponse response;
    String url;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // URL of PHP Script

        url = "http://192.168.3.103/index.php";

        // TextView to display result

        TextView result = (TextView) findViewById(R.id.tvResult);

        // Try to connect using Apache HttpClient Library
        try {
            httpclient = new DefaultHttpClient();
            request = new HttpGet(url);
            response = httpclient.execute(request);
            }

        catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), "First Exception", Toast.LENGTH_LONG).show();
        }

        // response code
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader(
                    response.getEntity().getContent()));
            String line = "";
            while ((line = rd.readLine()) != null) {

                // Appending result to textview
                result.append(line);
            }
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), "Second Exception", Toast.LENGTH_LONG).show();
        }
    }
}
阿米尔, 尽量不要使用
http://127.0.0.1/
URL,从您的Android设备上,这将指向Android的本地主机,我假设它不是您的PHP文件所在的位置。如果设备和php服务器位于同一本地网络上,请使用您的本地IP地址。

使用ipaddress而不是127.0.0.1本地主机


在命令提示符下键入ipconfig并获取您的ipaddress

您是否检查了清单文件,您是否对其具有INTERNET权限?

使用
ip地址10.0.2.2而不是127.0.0.1

所以试着换成

08-05 05:07:30.311: W/System.err(2009): android.os.NetworkOnMainThreadException
08-05 05:07:30.321: W/System.err(2009):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
08-05 05:07:30.331: W/System.err(2009):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
08-05 05:07:30.341: W/System.err(2009):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
08-05 05:07:30.341: W/System.err(2009):     at libcore.io.IoBridge.connect(IoBridge.java:112)
08-05 05:07:30.341: W/System.err(2009):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
08-05 05:07:30.341: W/System.err(2009):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
08-05 05:07:30.341: W/System.err(2009):     at java.net.Socket.connect(Socket.java:842)
08-05 05:07:30.341: W/System.err(2009):     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
08-05 05:07:30.341: W/System.err(2009):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
08-05 05:07:30.341: W/System.err(2009):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
08-05 05:07:30.361: W/System.err(2009):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
08-05 05:07:30.361: W/System.err(2009):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
08-05 05:07:30.361: W/System.err(2009):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
08-05 05:07:30.361: W/System.err(2009):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
08-05 05:07:30.361: W/System.err(2009):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
08-05 05:07:30.361: W/System.err(2009):     at com.sunil.phpconnect.MainActivity.onCreate(MainActivity.java:40)
08-05 05:07:30.381: W/System.err(2009):     at android.app.Activity.performCreate(Activity.java:5104)
08-05 05:07:30.381: W/System.err(2009):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-05 05:07:30.381: W/System.err(2009):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-05 05:07:30.381: W/System.err(2009):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-05 05:07:30.381: W/System.err(2009):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-05 05:07:30.381: W/System.err(2009):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-05 05:07:30.381: W/System.err(2009):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 05:07:30.381: W/System.err(2009):     at android.os.Looper.loop(Looper.java:137)
08-05 05:07:30.381: W/System.err(2009):     at android.app.ActivityThread.main(ActivityThread.java:5039)
08-05 05:07:30.381: W/System.err(2009):     at java.lang.reflect.Method.invokeNative(Native Method)
08-05 05:07:30.381: W/System.err(2009):     at java.lang.reflect.Method.invoke(Method.java:511)
08-05 05:07:30.393: W/System.err(2009):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-05 05:07:30.401: W/System.err(2009):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-05 05:07:30.401: W/System.err(2009):     at dalvik.system.NativeStart.main(Native Method)
PS.

使用
AysncTask

或者在
setContentView(R.layout.activity\u main)之后的
onCreate()中添加以下代码


您的问题是在主线程上执行网络活动

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

这种类型的行为可能导致ANR(活动无响应),因为UI线程被I/O活动阻塞。建议您使用
AsyncTask
执行此操作

如果您使用的是更高版本的sdk,请使用以下代码

08-05 05:07:30.311: W/System.err(2009): android.os.NetworkOnMainThreadException

有任何例外我的日志猫:使用了这个,如果(android.os.Build.VERSION.SDK_INT>9){StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().Build();StrictMode.setThreadPolicy(policy);}我使用了这个ip地址(url=“)在我的模拟器浏览器中,它正在工作,但在我的代码中没有。它正在移动到第一个catch块。如果(android.os.Build.VERSION.SDK_INT>9){StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().Build();StrictMode.setThreadPolicy(policy);},它为什么会工作是的,我已授予interneti权限。我已在我的模拟器浏览器中使用此ip地址(url=“”),它正在工作,但未在我的代码中使用。它正在移动到第一个捕获块。为什么?10.0.2.2是您的ip地址?我正在使用emulator并获得结果。这意味着没有互联网问题我的logcat:10.0.2.2是我的ip地址如果(android.os.Build.VERSION.SDK_INT>9){StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().Build();StrictMode.setThreadPolicy(policy);}我使用过这个ip地址(url=“)在我的仿真器浏览器中,它正在工作,但在我的代码中没有。它正在移动到第一个catch块。Why@AamirMukaram
在您的catch块中打印stacktrace并将其发布到您的问题中
要打印堆栈跟踪,请使用
e.printStackTrace();
在catch块内部!我使用android一周了,我已经写了这个e.printStackTrace();我现在要做什么,我必须做什么post@AamirMukaram那么你在logcat中得到了什么?@AamirMukaram很抱歉,我在办公室时可以访问有限的站点,所以请用你的问题发布logcat!这是一种糟糕的做法,你不应该推广这种做法
if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
08-05 05:07:30.311: W/System.err(2009): android.os.NetworkOnMainThreadException
                if (android.os.Build.VERSION.SDK_INT > 9) {
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy);
            }