Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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 通过HTTP GET将数据发送到PHP服务器_Java_Php_Android - Fatal编程技术网

Java 通过HTTP GET将数据发送到PHP服务器

Java 通过HTTP GET将数据发送到PHP服务器,java,php,android,Java,Php,Android,我正在建立一个应用程序,用户可以选择他/她的性别,最喜欢的食物,他们的愤怒,最喜欢的颜色,他们的年龄等 我故意将这些数据传递给我的最终活动。 现在,我正在尝试将答案发送到PHP服务器(工作正常)并获得答案(哪个城市最适合您) 这是我的代码,我不知道有什么问题(我已经添加了连接互联网的权限) 当我运行应用程序时,它工作正常,直到单击最后一个活动,然后它强制关闭应用程序 public class result extends AppCompatActivity { public void onCre

我正在建立一个应用程序,用户可以选择他/她的性别,最喜欢的食物,他们的愤怒,最喜欢的颜色,他们的年龄等

我故意将这些数据传递给我的最终活动。 现在,我正在尝试将答案发送到PHP服务器(工作正常)并获得答案(哪个城市最适合您)

这是我的代码,我不知道有什么问题(我已经添加了连接互联网的权限) 当我运行应用程序时,它工作正常,直到单击最后一个活动,然后它强制关闭应用程序

public class result extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);


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

    final String gender;
    Intent a = getIntent();
    gender = a.getStringExtra("gender");
    final String anger;
    Intent b = getIntent();
    anger = b.getStringExtra("hate");
    final String food;
    Intent c = getIntent();
    food = c.getStringExtra("food");
    final String gettowork;
    Intent d = getIntent();
    gettowork = d.getStringExtra("gotowork");
    final String settelment;
    Intent ee = getIntent();
    settelment = ee.getStringExtra("house");
    final String actor;
    Intent f = getIntent();
    actor = f.getStringExtra("star");
    final String weather;
    Intent g = getIntent();
    weather = g.getStringExtra("weather");
    final String weekend;
    Intent h = getIntent();
    weekend = h.getStringExtra("weekend");
    final String color;
    Intent j = getIntent();
    color = j.getStringExtra("color");
    final String age;
    Intent i10 = getIntent();
    age = i10.getStringExtra("age");


HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://test123.com/games/whichcity/app/check-form.php?gender=" + gender + "&anger=" + anger + "&food=" + food + "&gettowork=" + gettowork + "&settlement=" + settelment + "&actor=" + actor + "&weather=" + weather + "&weekend=" + weekend + "&color=" + color + "&age=" + age);
    HttpResponse response = null;
    try {
        response = httpclient.execute(httpget);
    } catch (IOException e) {
        e.printStackTrace();
    }
    HttpEntity entity = response.getEntity();
    try {
        InputStream webs = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(webs,"iso-8859-1"),8);
        result.setText(reader.readLine());
    } catch (IOException e) {
        e.printStackTrace();



}}}
Android清单文件


出现此异常是因为您试图在UI线程中执行网络操作。相反,您可以将网络操作放在另一个线程中,或者实现一些更好的方法,最终将操作放在另一个线程中。这些更好的方法是使用异步任务或使用截击。我一定会投截击的票,因为截击既简单又简洁

执行截击行动

// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://test123.com/games/whichcity/app/check-form.php?gender=" + gender + "&anger=" + anger + "&food=" + food + "&gettowork=" + gettowork + "&settlement=" + settelment + "&actor=" + actor + "&weather=" + weather + "&weekend=" + weekend + "&color=" + color + "&age=" + age;

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        //handle response from server
        result.setText(response);
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //handle error
        result.setText("That didn't work!");
    }
});
// Add the request to the RequestQueue.
queue.add(stringRequest); 


快乐编码

你能把你得到的错误贴出来吗?我们看看哪里出了问题。你也可以看到。你没有告诉我你的应用到底发生了什么。如果你查看日志,你就会知道出了什么问题。发布相关行。执行此代码后出现了什么问题?发布logcat.Post清单文件的相关行。那么,您为什么不提及由以下原因引起的另一个异常:
:android.os.NetworkOnMainThreadException
?在
onCreate()
中看到您的网络代码时会出现此异常。
E/AndroidRuntime: FATAL EXCEPTION: main                                                              java.lang.RuntimeException: Unable to start activity ComponentInfo{org.vaya_group.charactertest/org.vaya_group.charactertest.result}: android.os.NetworkOnMainThreadException
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2071)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096)
                                                                              at android.app.ActivityThread.access$600(ActivityThread.java:138)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                              at android.os.Looper.loop(Looper.java:213)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:4787)
                                                                              at java.lang.reflect.Method.invokeNative(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:511)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
                                                                              at dalvik.system.NativeStart.main(Native Method)
                                                                           Caused by: android.os.NetworkOnMainThreadException
                                                                              at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1126)
                                                                              at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
                                                                              at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
                                                                              at java.net.InetAddress.getAllByName(InetAddress.java:214)
                                                                              at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:141)
                                                                              at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
                                                                              at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
                                                                              at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
                                                                              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
                                                                              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
                                                                              at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
                                                                              at org.vaya_group.charactertest.result.onCreate(result.java:86)
                                                                              at android.app.Activity.performCreate(Activity.java:5008)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2035)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2096) 
                                                                              at android.app.ActivityThread.access$600(ActivityThread.java:138) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1207) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                              at android.os.Looper.loop(Looper.java:213) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:4787) 
                                                                              at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://test123.com/games/whichcity/app/check-form.php?gender=" + gender + "&anger=" + anger + "&food=" + food + "&gettowork=" + gettowork + "&settlement=" + settelment + "&actor=" + actor + "&weather=" + weather + "&weekend=" + weekend + "&color=" + color + "&age=" + age;

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        //handle response from server
        result.setText(response);
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //handle error
        result.setText("That didn't work!");
    }
});
// Add the request to the RequestQueue.
queue.add(stringRequest); 
dependencies {
    compile 'com.android.volley:volley:1.0.0'
}