Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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
Android HttpPost中发送到PHP文件的奇怪错误_Android_Http Post - Fatal编程技术网

Android HttpPost中发送到PHP文件的奇怪错误

Android HttpPost中发送到PHP文件的奇怪错误,android,http-post,Android,Http Post,我想用POST方法发送字符串,但是给出了这个错误,我找不到,你能帮我吗 这给出了一个非常奇怪的异常,APA没有打开,现在错误,MainActivity屏幕没有出现 我的代码: MainActivity.java package com.app.androidpost; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpRespon

我想用POST方法发送字符串,但是给出了这个错误,我找不到,你能帮我吗

这给出了一个非常奇怪的异常,APA没有打开,现在错误,MainActivity屏幕没有出现

我的代码:

MainActivity.java

package com.app.androidpost;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
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;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

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

    HttpClient httpclient = new DefaultHttpClient(); 

        HttpPost httppost = new HttpPost("http://www.meusite.com/ws/default.php"); 

        try {

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
            nameValuePairs.add(new BasicNameValuePair("action", "Sucesso")); 
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

            HttpResponse response = httpclient.execute(httppost); 
            String responseText = EntityUtils.toString(response.getEntity()); 
            Toast.makeText(this, responseText , 5000).show(); 

        } 
        catch (ClientProtocolException e) { 
            Toast.makeText(this, "Erro Conversão" , 5000).show(); 
        } 
        catch (IOException e) {
            Toast.makeText(this, "Erro conexão" , 5000).show(); 
        } 

    }

}

非常感谢

您出现了错误,因为您正试图在主线程中连接到网络,这是不允许的 正如你所看到的:

当应用程序尝试执行异常时引发的异常 在其主线程上进行网络操作。 这仅适用于针对蜂巢SDK或 较高的。允许针对早期SDK版本的应用程序执行以下操作 在他们的主事件循环线程上建立网络,但它非常复杂 气馁。有关响应性,请参阅文档设计

您必须使用后台线程,例如异步任务。你有一个简单的

您的代码如下所示:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

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

 new HttpTask().execute("http://www.meusite.com/ws/default.php");

}

private class HttpTask extends AsyncTask<String, Integer, Long> {

    protected Long doInBackground(String... urls) {
        int count = urls.length;
        long totalSize = 0;
        for (int i = 0; i < count; i++) {

            HttpClient httpclient = new DefaultHttpClient(); 

            HttpPost httppost = new HttpPost(urls[i]); 

             try {

              List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
             nameValuePairs.add(new BasicNameValuePair("action", "Sucesso")); 
               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

              HttpResponse response = httpclient.execute(httppost); 
               String responseText = EntityUtils.toString(response.getEntity()); 
               Toast.makeText(this, responseText , 5000).show(); 

           } 
           catch (ClientProtocolException e) { 
               Toast.makeText(this, "Erro Conversão" , 5000).show(); 
           } 
           catch (IOException e) {
               Toast.makeText(this, "Erro conexão" , 5000).show(); 
           } 


            // Escape early if cancel() is called
            if (isCancelled()) break;
        }
        return totalSize;
    }


    protected void onProgressUpdate(Integer... progress) {    }

    protected void onPostExecute(Long result) { }
}


}

请发布错误消息和相关代码。大多数人不会下载和浏览上面发布的项目我的代码。请帮助我。请同时复制上面包含的logcatLogcat。+1,因为问题现在提供了所有信息
<?php 

$reversed = $_POST["action"];

echo $reversed;

?>
01-20 18:42:03.909: W/dalvikvm(25243): threadid=1: thread exiting with uncaught exception (group=0x40dab1f8)
01-20 18:42:03.949: E/AndroidRuntime(25243): FATAL EXCEPTION: main
01-20 18:42:03.949: E/AndroidRuntime(25243): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.androidpost/com.app.androidpost.MainActivity}: android.os.NetworkOnMainThreadException
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.os.Looper.loop(Looper.java:137)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread.main(ActivityThread.java:4476)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at java.lang.reflect.Method.invokeNative(Native Method)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at java.lang.reflect.Method.invoke(Method.java:511)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at dalvik.system.NativeStart.main(Native Method)
01-20 18:42:03.949: E/AndroidRuntime(25243): Caused by: android.os.NetworkOnMainThreadException
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at java.net.InetAddress.lookupHostByName(InetAddress.java:426)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at java.net.InetAddress.getAllByName(InetAddress.java:251)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at com.app.androidpost.MainActivity.onCreate(MainActivity.java:38)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.Activity.performCreate(Activity.java:4636)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)
01-20 18:42:03.949: E/AndroidRuntime(25243):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
01-20 18:42:03.949: E/AndroidRuntime(25243):    ... 11 more
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

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

 new HttpTask().execute("http://www.meusite.com/ws/default.php");

}

private class HttpTask extends AsyncTask<String, Integer, Long> {

    protected Long doInBackground(String... urls) {
        int count = urls.length;
        long totalSize = 0;
        for (int i = 0; i < count; i++) {

            HttpClient httpclient = new DefaultHttpClient(); 

            HttpPost httppost = new HttpPost(urls[i]); 

             try {

              List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
             nameValuePairs.add(new BasicNameValuePair("action", "Sucesso")); 
               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

              HttpResponse response = httpclient.execute(httppost); 
               String responseText = EntityUtils.toString(response.getEntity()); 
               Toast.makeText(this, responseText , 5000).show(); 

           } 
           catch (ClientProtocolException e) { 
               Toast.makeText(this, "Erro Conversão" , 5000).show(); 
           } 
           catch (IOException e) {
               Toast.makeText(this, "Erro conexão" , 5000).show(); 
           } 


            // Escape early if cancel() is called
            if (isCancelled()) break;
        }
        return totalSize;
    }


    protected void onProgressUpdate(Integer... progress) {    }

    protected void onPostExecute(Long result) { }
}


}