Php Android上的HTTP POST

Php Android上的HTTP POST,php,android,http-post,Php,Android,Http Post,我想对一个php脚本做一个简单的HTTPRequest,并且我已经尝试了制作最基本的应用程序来实现功能。我想测试我的应用程序是否正在发送我提供给它的数据,因此我已经将android应用程序发送到服务器,并且该服务器应该将我输入应用程序的数据发送给我。“postData”函数的代码是将数据从android发送到服务器,“default.php”的代码是Web服务器上接收的php文件,该文件随后将数据转发到我的电子邮件地址(未给出)。这是密码 public void postData() {

我想对一个php脚本做一个简单的HTTPRequest,并且我已经尝试了制作最基本的应用程序来实现功能。我想测试我的应用程序是否正在发送我提供给它的数据,因此我已经将android应用程序发送到服务器,并且该服务器应该将我输入应用程序的数据发送给我。“postData”函数的代码是将数据从android发送到服务器,“default.php”的代码是Web服务器上接收的php文件,该文件随后将数据转发到我的电子邮件地址(未给出)。这是密码

    public void postData() {

    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://somewhere.net/default.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("thename", "Steve"));
        nameValuePairs.add(new BasicNameValuePair("theage", "24"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        //HttpResponse response = httpclient.execute(httppost);

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler=new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);

    //Just display the response back
    displayToastMessage(responseBody);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}
public void postData(){
//创建一个新的HttpClient和Post头
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://somewhere.net/default.php");
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“thename”,“Steve”));
添加(新的BasicNameValuePair(“theage”,“24”));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
//HttpResponse response=httpclient.execute(httppost);
//执行HTTP Post请求
ResponseHandler ResponseHandler=新BasicResponseHandler();
字符串responseBody=httpclient.execute(httppost,responseHandler);
//只需显示回复
显示ToastMessage(响应库);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
}
以及“default.php”


以下是指向pastebin中代码的链接: 及

我收到一封电子邮件,但是发送的数据“thename”和“theage”似乎是空的。收到的确切电子邮件是 “嗨, 你好吗,? 至少你正在变老。” 这向我表明服务器发送的名称和日期为空。你们有人试过这个吗?我做错了什么? 非常感谢您抽出时间阅读我的代码,如果可能的话,请回答我的问题


编辑:我太白痴了->需要将“获取”改为“发布”。将其保留在此处用于存档:)

您使用的是
$\u GET
而不是
$\u POST
来获取发布数据的值。你想要

<?php 
$thename=$_POST["thename"]; 
$theage=$_POST["theage"];

您正在发送POST请求,但您的php脚本使用GET变量

试一试


Android和PHP中使用的方法应该相同,
GET
POST

在本例中,您可以将PHP更改为-

$thename = $_POST["thename"];
$theage = $_POST["theage"];
HttpGet httppost = new HttpGet("http://somewhere.net/default.php");
改变Android的这一面-

$thename = $_POST["thename"];
$theage = $_POST["theage"];
HttpGet httppost = new HttpGet("http://somewhere.net/default.php");

Thanx刚试过,效果不错。我会尽快接受正确的答案。这似乎试图回答这个问题,但答案对我来说非常不清楚。您是否可以查看自己的答案,编辑它,并将其澄清一点,并将代码样式设置为代码(使用反勾号或代码块;在选择代码时使用编辑字段上方的按钮)?