android - 将数据从 Android 发送到 Webservice 以插入到我的数据库中

标签 android database web-services http-post

我正在尝试通过“httppost”方法从 android 发送一些变量(或数据)以注册到 web 服务。这是代码。

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://mywebsitename.com/webservice/register.php");
try {
 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);

nameValuePairs.add(new BasicNameValuePair("fname", et3.getText().toString()));
 nameValuePairs.add(new BasicNameValuePair("lname", et4.getText().toString()));
 nameValuePairs.add(new BasicNameValuePair("userid", et5.getText().toString()));
 nameValuePairs.add(new BasicNameValuePair("pass", et6.getText().toString()));
 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 httpclient.execute(httppost);

 } catch (ClientProtocolException e) {
                         // TODO Auto-generated catch block
 } catch (IOException e) {
                         // TODO Auto-generated catch block
}

Register.php文件代码如下

<?php
$host = "localhost"; 
$user = "myusername"; 
$pass = "mypass";
$connection = mysql_connect($host,$user,$pass) or die (mysql_errno().": ".mysql_error()."<BR>");

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$userid = $_POST['userid'];
$pass = $_POST['pass'];

$db_select=mysql_select_db("the_db");
if(!$db_select){
    die(mysql_error());
    echo "error";
}

$query= "INSERT INTO USERS(fname, lname, userid, pass)
VALUES ('{$fname}', '{$lname}', '{$userid}', '{$pass}'); " ;

if($medo=mysql_query($query)){
    header("localhost/filename");
    exit;
}else{
    echo"<p> Error</p>";
    die(mysql_error());
}

当我尝试运行它时,出现错误。它在我的设备上显示“YourApp 已停止工作”。可能是空指针异常或类似的东西。我不知道这是否是将名称和密码等简单变量发送到 register.php 的正确方法。你能告诉我这里的问题是什么吗?

最佳答案

请查看 LogCat 输出。它应该说明在哪个类的哪一行出现异常。如果您需要帮助,请在此处发布 logcat 输出。我还建议您查看 Android Asynchronous Http Client .它极大地简化了 HTTP 通信。 HTTP POST 示例:

AsyncHttpClient client = new AsyncHttpClient();
RequestParams rp = new RequestParams();
rp.put("fname", et3.getText().toString());
rp.put("lname", et4.getText().toString());
rp.put("userid", et5.getText().toString());
rp.put("pass", et6.getText().toString());

client.post("http://mywebsitename.com/webservice/register.php", rp, new AsyncHttpResponseHandler() {
    @Override
    public final void onSuccess(String response) {
        // handle your response here
    }

    @Override
    public void onFailure(Throwable e, String response) {
        // something went wrong
    }               
});

关于android - 将数据从 Android 发送到 Webservice 以插入到我的数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447647/

相关文章:

java - JAX-RS 2.0 - 如何从响应对象获取实体

android - 升级到api v26.1.0后Hard Menu Button不触发AppCompatActivity的onKeyDown

android - 查询 ConnectivityManager getActiveNetwork

java - 是否可以编写跨数据库连接查询?

javascript - 从 Firebase(网络)检索数据不起作用

java - 尝试通过 php webservice 发送数组时出现异常

android - 我怎么 "Open the MainActivity class and add the corresponding method:"

android - 为什么在 HTC Desire 上发送短信时会出现 NullPointerException,或者什么是 SubmitPdu?

mysql - 主键和外键相同 MySQL 显示异常

asp.net-mvc - 在 ASP.NET MVC 的 View 层中使用 webservice 类型好吗?