Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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 无法将HTTP请求发送到后端服务器_Php_Android - Fatal编程技术网

Php 无法将HTTP请求发送到后端服务器

Php 无法将HTTP请求发送到后端服务器,php,android,Php,Android,我正在开发一个android应用程序,将HTTP数据发送到虚拟机中的后端服务器 try{ HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("192.168.1.150/application/check.php"); params.add(new BasicNameValuePair("device", Build.SERIAL)); params.add(new

我正在开发一个android应用程序,将HTTP数据发送到虚拟机中的后端服务器

try{
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("192.168.1.150/application/check.php");
    params.add(new BasicNameValuePair("device", Build.SERIAL));
    params.add(new BasicNameValuePair("person", "A"));
    UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
    post.setEntity(ent);
    HttpResponse responsePOST = client.execute(post);  
    HttpEntity resEntity = responsePOST.getEntity();  
    if (resEntity != null) {    
        Log.i("RESPONSE",EntityUtils.toString(resEntity));
    }
} catch (Exception e) {
    e.printStackTrace();
}
下面是php代码:

<?php
$file = "C:/wamp/www/application/file.txt";
$data = "device:".$_POST['device']." person:".$_POST['person'];
file_put_contents($file, $data);
?>
修改应用程序后logcat中显示的消息:

07-18 17:35:05.899: E/WindowManager(28043): Activity android.reader.Reader has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@416c3630 that was originally added here
07-18 17:35:05.899: E/WindowManager(28043): android.view.WindowLeaked: Activity android.reader.Reader has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@416c3630 that was originally added here
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:344)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:267)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.Window$LocalWindowManager.addView(Window.java:537)
07-18 17:35:05.899: E/WindowManager(28043):     at android.app.Dialog.show(Dialog.java:278)
07-18 17:35:05.899: E/WindowManager(28043):     at android.reader.Reader$GrabURL.onPreExecute(Reader.java:219)
07-18 17:35:05.899: E/WindowManager(28043):     at android.reader.Reader$1.onClick(Reader.java:101)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.View.performClick(View.java:3511)
07-18 17:35:05.899: E/WindowManager(28043):     at android.view.View$PerformClick.run(View.java:14105)
07-18 17:35:05.899: E/WindowManager(28043):     at android.os.Handler.handleCallback(Handler.java:605)
07-18 17:35:05.899: E/WindowManager(28043):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-18 17:35:05.899: E/WindowManager(28043):     at android.os.Looper.loop(Looper.java:137)
07-18 17:35:05.899: E/WindowManager(28043):     at android.app.ActivityThread.main(ActivityThread.java:4424)
07-18 17:35:05.899: E/WindowManager(28043):     at java.lang.reflect.Method.invokeNative(Native Method)
07-18 17:35:05.899: E/WindowManager(28043):     at java.lang.reflect.Method.invoke(Method.java:511)
07-18 17:35:05.899: E/WindowManager(28043):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-18 17:35:05.899: E/WindowManager(28043):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-18 17:35:05.899: E/WindowManager(28043):     at dalvik.system.NativeStart.main(Native Method)
07-18 17:35:05.899: D/OpenGLRenderer(28043): Flushing caches (mode 1)
07-18 17:35:05.899:E/WindowManager(28043):活动android.reader.reader泄漏了window com.android.internal.policy.impl.PhoneWindow$DecorView@416c3630原来是加在这里的
07-18 17:35:05.899:E/WindowManager(28043):android.view.WindowLeaked:Activity android.reader.reader已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@416c3630原来是加在这里的
07-18 17:35:05.899:E/WindowManager(28043):在android.view.ViewRootImpl。(ViewRootImpl.java:344)
07-18 17:35:05.899:E/WindowManager(28043):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:267)
07-18 17:35:05.899:E/WindowManager(28043):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
07-18 17:35:05.899:E/WindowManager(28043):在android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
07-18 17:35:05.899:E/WindowManager(28043):在android.view.Window$LocalWindowManager.addView(Window.java:537)
07-18 17:35:05.899:E/WindowManager(28043):在android.app.Dialog.show(Dialog.java:278)
07-18 17:35:05.899:E/WindowManager(28043):在android.reader.reader$GrabURL.onPreExecute(reader.java:219)
07-18 17:35:05.899:E/WindowManager(28043):在android.reader.reader$1.onClick(reader.java:101)
07-18 17:35:05.899:E/WindowManager(28043):在android.view.view.performClick(view.java:3511)上
07-18 17:35:05.899:E/WindowManager(28043):在android.view.view$PerformClick.run(view.java:14105)
07-18 17:35:05.899:E/WindowManager(28043):在android.os.Handler.handleCallback(Handler.java:605)
07-18 17:35:05.899:E/WindowManager(28043):在android.os.Handler.dispatchMessage(Handler.java:92)
07-18 17:35:05.899:E/WindowManager(28043):位于android.os.Looper.loop(Looper.java:137)
07-18 17:35:05.899:E/WindowManager(28043):位于android.app.ActivityThread.main(ActivityThread.java:4424)
07-18 17:35:05.899:E/WindowManager(28043):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-18 17:35:05.899:E/WindowManager(28043):位于java.lang.reflect.Method.invoke(Method.java:511)
07-18 17:35:05.899:E/WindowManager(28043):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
07-18 17:35:05.899:E/WindowManager(28043):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
07-18 17:35:05.899:E/WindowManager(28043):在dalvik.system.NativeStart.main(本机方法)
07-18 17:35:05.899:D/OpenGLRenderer(28043):刷新缓存(模式1)

首先,您的
HtttpPost
请求URL

HttpPost post = new HttpPost("192.168.1.150/application/check.php");
应该是这样的

HttpPost post = new HttpPost("http://192.168.1.150/application/check.php");
现在,第二,检查应用程序的清单文件以获得权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

第三个,

将完整的Web请求代码放入后台线程或AsyncTask的
doInBackGround()
而不是应用程序的MainUI线程

最后,检查Http请求的响应,您将得到什么

如果可能的话,还可以调试Web请求的代码,这样您就可以发现哪里出了问题

解决方案:

从您的Logcat错误中,我们得出结论,您试图在活动的
MainUI线程上执行网络相关操作。因此,按照我在第三步中的建议,使用此操作

我回答的第三步


将您的所有HttpRequest代码放入
AsyncYAsk的doInBackGround()

首先,您的
HtttpPost
请求URL

HttpPost post = new HttpPost("192.168.1.150/application/check.php");
应该是这样的

HttpPost post = new HttpPost("http://192.168.1.150/application/check.php");
现在,第二,检查应用程序的清单文件以获得权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

第三个,

将完整的Web请求代码放入后台线程或AsyncTask的
doInBackGround()
而不是应用程序的MainUI线程

最后,检查Http请求的响应,您将得到什么

如果可能的话,还可以调试Web请求的代码,这样您就可以发现哪里出了问题

解决方案:

从您的Logcat错误中,我们得出结论,您试图在活动的
MainUI线程上执行网络相关操作。因此,按照我在第三步中的建议,使用此操作

我回答的第三步


将所有HttpRequest代码放入
AsyncYAsk的doInBackGround()

清单文件中是否包含INTERNET权限?日志中是否有任何内容?你设置了正确的权限吗?你是说logcat,没有显示任何内容,我不知道为什么,互联网权限?我没有添加它,因为我是android应用程序的初学者,我曾经认为它可以随心所欲地访问互联网。让我先试一试,谢谢您使用的是哪种API级别?
Logcat
中有任何错误吗?我刚刚将设备重新连接到桌面并重试,当我尝试发送数据时,Logcat中出现错误消息,如果您在清单文件中包含INTERNET权限,我将在上面发布它。您在日志中看到了什么吗?你设置了正确的权限吗?你是说logcat,没有显示任何内容,我不知道为什么,互联网权限?我没有添加它,因为我是android应用程序的初学者,我曾经认为它可以随心所欲地访问互联网。让我先试一试,谢谢您使用的是哪种API级别?
Logcat
中有任何错误吗?我刚刚将设备重新连接到桌面并重试,当我尝试发送数据时,Logcat中出现错误消息,我将在上面发布。因此,您的意思是我必须创建AsyncTAsk类来处理请求吗?是的。因为您正在阻止Web请求上应用程序的MainUI线程