使用get方法将数据从Android Studio发送到php

时间:2017-03-27 19:16:35

标签: java android httpurlconnection

我有一个Android应用程序,我需要将一个用户输入的名称(example-paul,john)提交给mysql数据库。为此,我有一个简单的php文件,使用get方法获取名称然后将名称插入mysql表,这在我的浏览器中成功测试了计算机和Android模拟器浏览器。但它不能在Android应用程序中工作。应用程序有一个提交按钮,单击它时应创建链接(例如http://10.0.2.2/project2/signup.php?name=john")并打开HttpURLConnection以使用php脚本将名称添加到数据库。无论我做什么,我似乎无法将输入的名称插入我的数据库。

 public void sign_up(View view)
{

    EditText newuserET = (EditText) findViewById(R.id.newuserET);
    String editTextValue = newuserET.getText().toString();

    //Toast.makeText(this, "Signing up...", Toast.LENGTH_SHORT).show();

    String link;
    String data;
    BufferedReader bufferedReader;
    String result;

    try {

       // data = "?name=" + URLEncoder.encode(fullName, "UTF-8");

        link = "http://10.0.2.2/project2/signup.php?name=" + editTextValue;

        //Toast.makeText(this, link, Toast.LENGTH_SHORT).show();

        URL url = new URL(link);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();

        con.setRequestMethod("GET");
        con.setDoOutput( true );

        // return result;
    } catch (Exception e)
    {
       // return new String("Exception: " + e.getMessage());
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }

}

我还在Android清单中添加了以下内容 - 不在应用程序范围内

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

1 个答案:

答案 0 :(得分:0)

首先使用android build.Gradle(Module.app)

中的依赖项
dependencies{

compile 'com.loopj.android:android-async-http:1.4.9'

}

并同步它。

然后转到脚本文件。

public void Function()
{

     link = "http://10.0.2.2/project2/signup.php?name=" + editTextValue;
     AsyncHttpClient client = new AsyncHttpClient();

     client.get(link, new AsyncHttpResponseHandler() 
        {
           @Override
           public void onSuccess(int statusCode, Header[] headers, byte[] responseBody)
           {
                Toast.makeText(getApplicationContext(),"Uploaded",Toast.LENGTH_SHORT).show();
           }

           @Override
           public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error)
           {
               Toast.makeText(getApplicationContext(),"Error" + error.toString(),Toast.LENGTH_LONG).show();
           }
       });
}