用php&;sql server 2008

用php&;sql server 2008,php,android,codeigniter,Php,Android,Codeigniter,我正在尝试通过Codeigniter使用android创建一个简单的登录(我刚刚学会)。 当我在android emulator中运行它时(来自android studio)。表单显示,但当我输入并按Login时,显示此消息 我的简单登录一直停止 这是从我的事件日志中删除的 晚上9:03:21执行任务:[:app:assembleDebug]晚上9:03:22渐变 建造在904ms内完成 E/AndroidRuntime:致命异常:主 进程:com.example.boby.myapplicat

我正在尝试通过Codeigniter使用android创建一个简单的登录(我刚刚学会)。 当我在android emulator中运行它时(来自android studio)。表单显示,但当我输入并按
Login
时,显示此消息

我的简单登录一直停止

这是从我的事件日志中删除的

晚上9:03:21执行任务:[:app:assembleDebug]晚上9:03:22渐变

建造在904ms内完成

E/AndroidRuntime:致命异常:主 进程:com.example.boby.myapplication,PID:13020 android.os.NetworkOnMainThreadException 在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork上(StrictMode.java:1303) 位于java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:86) 在java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) 位于java.net.InetAddress.getAllByName(InetAddress.java:752) 位于com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 位于com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) 在com.android.okhttp.internal.http.RouteSelector.nextProxy上(RouteSelector.java:156) 在com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98)上 位于com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:345) 位于com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:328) 位于com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246) 位于com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 位于com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126) 位于com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:257) 位于com.example.boby.myapplication.MainActivity.goLogin(MainActivity.java:72) 在com.example.boby.myapplication.MainActivity$1.onClick(MainActivity.java:49)上 在android.view.view.performClick上(view.java:5637) 在android.view.view$PerformClick.run(view.java:22429) 位于android.os.Handler.handleCallback(Handler.java:751) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:154) 位于android.app.ActivityThread.main(ActivityThread.java:6119) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

这是我的剧本

package com.example.boby.myapplication;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

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

        final Button Login = (Button) findViewById(R.id.buttonLogin);
        final EditText username = (EditText) findViewById(R.id.UsernameID);
        final EditText password = (EditText) findViewById(R.id.PasswordID);



        Login.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                final Button Login = (Button) findViewById(R.id.buttonLogin);
                final EditText username = (EditText) findViewById(R.id.UsernameID);
                final EditText password = (EditText) findViewById(R.id.PasswordID);

                String usernametext = username.getText().toString();
                String passwordtext = password.getText().toString();

                Context context = getApplicationContext();
                String text = "";

                if(usernametext.equals("") || passwordtext.equals(""))
                {
                    text = "All Field required !!!";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();
                }else{
                    goLogin(usernametext,passwordtext);
                }

            }
        });

    }

    protected  void goLogin(String username, String password){
        HttpURLConnection connection;
        OutputStreamWriter request = null;
        String parameters = "username="+username+"&password="+password;
        URL url = null;
        int duration = Toast.LENGTH_SHORT;
         String response;
        try{

            url = new URL("http://localhost/api/login/proses");
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            connection.setRequestMethod("POST");

            request = new OutputStreamWriter(connection.getOutputStream());
            request.write(parameters);
            request.flush();
            request.close();
            String line = "";
            InputStreamReader isr = new InputStreamReader(connection.getInputStream());
            BufferedReader reader = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }

            response = sb.toString();
            Toast toast = Toast.makeText(this, response, duration);
            toast.show();
            isr.close();
            reader.close();

        }
        catch(IOException e)
        {

            Toast toast = Toast.makeText(this, "Error \n"+e, duration);
            toast.show();
        }
    }



}
这是我的密码点火器

class Login extends CI_Controller {

    public function proses()
    {
        $username = $this->input->post("username");
        $password = $this->input->post("password");

        $result = $this->Modelmodel->check($username,$password);
        json_encode($result);
    }
}

class Modelmodel extends CI_Model {

    public function check($username,$password)
    {
        return $this->db->query("select * from user where username = '".$username."' and password = '".$password."' ")->row();
    }
}

对不起,我的英语不好

学英语吧。您发布的消息与实际问题无关。简单看一下:您不能在主线程上执行网络操作。你需要使用一种新的方法。有关更多信息,请参阅。谢谢,现在我看到了错误,请学习如何。您发布的消息与实际问题无关。简单看一下:您不能在主线程上执行网络操作。你需要使用一种新的方法。有关更多信息,请参阅。谢谢,现在我看到了错误