Php Android上的HTTP POST
我想对一个php脚本做一个简单的HTTPRequest,并且我已经尝试了制作最基本的应用程序来实现功能。我想测试我的应用程序是否正在发送我提供给它的数据,因此我已经将android应用程序发送到服务器,并且该服务器应该将我输入应用程序的数据发送给我。“postData”函数的代码是将数据从android发送到服务器,“default.php”的代码是Web服务器上接收的php文件,该文件随后将数据转发到我的电子邮件地址(未给出)。这是密码Php Android上的HTTP POST,php,android,http-post,Php,Android,Http Post,我想对一个php脚本做一个简单的HTTPRequest,并且我已经尝试了制作最基本的应用程序来实现功能。我想测试我的应用程序是否正在发送我提供给它的数据,因此我已经将android应用程序发送到服务器,并且该服务器应该将我输入应用程序的数据发送给我。“postData”函数的代码是将数据从android发送到服务器,“default.php”的代码是Web服务器上接收的php文件,该文件随后将数据转发到我的电子邮件地址(未给出)。这是密码 public void postData() {
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刚试过,效果不错。我会尽快接受正确的答案。这似乎试图回答这个问题,但答案对我来说非常不清楚。您是否可以查看自己的答案,编辑它,并将其澄清一点,并将代码样式设置为代码(使用反勾号或代码块;在选择代码时使用编辑字段上方的按钮)?