Android应用程序不会将发布数据发送到php文件

时间:2013-12-14 16:41:01

标签: php android http post send

我的Android应用程序中有一个函数,它将数据发送到PHP文件,然后将其插入数据库。我的问题是post值实际上从未实际发送到PHP文件。

我的功能如下:

public void postData(){

    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(myURL);
    try {
        List<NameValuePair> param = new ArrayList<NameValuePair>();
        param.add(new BasicNameValuePair("firstName", "John"));
        param.add(new BasicNameValuePair("lastName", "Doe"));

        post.setEntity(new UrlEncodedFormEntity(param));
        HttpResponse response = client.execute(post);

        BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

          // show response in logcat
          String line = "";
          while ((line = rd.readLine()) != null) {
            Log.i("postData", line);
           }

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我的php文件只是检查变量是否已设置:

<?php

if (isset($_POST["firstName"]) && isset($_POST["lastName"])) {

    // insert into the database

} else {

    // send error message.

}
?>

我总是从PHP文件的else部分获取错误消息。有谁知道为什么会这样或者如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的问题可能存在于跨域策略文件中。服务器必须有一个crossdomain.xml文件,允许服务器外的用户向其发送数据。

Google crossdomain.xml了解更多信息。