连接到本地数据库时出现SocketTimeoutException

时间:2015-09-05 07:44:21

标签: android web-services localhost

我正在尝试使用DOT NET webservice将我的Android应用程序连接到我的计算机中的MySql数据库(localhost)。我只能使用单个输入(EditText)连接到在线数据库。这里有3个EditText输入参数,数据库仅存在于计算机中。 Web服务接收3个参数并检查3个输入是否与数据库中的相同。如果是,则返回一个值,如果否,则返回另一个值。我只是想将返回值(响应)保存到TextView。

Request.UrlReferrer
LoginService.asmx

[WebService(Namespace = "Check_Activity")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class LoginService  
{
    MySqlConnection objCon = new MySqlConnection(ConfigurationManager.ConnectionStrings["ActiveConnection"].ConnectionString); 
    MySqlCommand objSqlCmd; 
    MySqlParameter objSqlParam;
    [WebMethod]
    public string LoginStatus(string uid, string pswrd, string category) 
    {
        string returndata = "";
        try
        {
            if (objCon.State != ConnectionState.Open)
            {
                objCon.Open();
            }
            objSqlCmd = new MySqlCommand("rawProcedure", objCon);
            objSqlCmd.CommandType = CommandType.StoredProcedure;
            objSqlCmd.Parameters.AddWithValue("UID", uid);
            objSqlCmd.Parameters.AddWithValue("PASS", pswrd);
            objSqlCmd.Parameters.AddWithValue("CAT", category);
            objSqlParam = new MySqlParameter();
            objSqlParam.ParameterName = "Response";
            objSqlParam.MySqlDbType = MySqlDbType.VarChar;
            objSqlParam.Direction = ParameterDirection.Output;
            objSqlCmd.Parameters.Add(objSqlParam);
            objSqlCmd.ExecuteNonQuery();
            objCon.Close();
            returndata = objSqlParam.Value.ToString();
            return returndata; ;
        }
        catch(Exception ex)
        {
            return returndata = "Exception";
        }
    }
}
activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="41dp"
        android:hint="User ID"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="50dp"
        android:hint="Password"
        android:ems="10" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="64dp"
        android:hint="Category"
        android:ems="10" />

    

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText3"
        android:layout_marginTop="20dp"
        android:onClick="RUN"
        android:text="Get It !" />
    
     <TextView
        android:id="@+id/test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp" />

</RelativeLayout>

Error

1 个答案:

答案 0 :(得分:1)

您必须确保您的MySQL服务器允许通过公共MySQL客户端进行连接。 要配置它,请尝试see here.