我在过去几天一直在搜索SO,并且发现了许多关于我的问题的Q/A,但尚未解决。我正在尝试制作一个Android应用程序,它可以将4个(也许是5个)数据发送到我的网络服务器上的一个php脚本。我相信这段代码是这样的:如何查看/使用由http POST发送的数据?
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.mydomain.com/myscript.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("name", "name"));
nameValuePairs.add(new BasicNameValuePair("var1", "var1"));
nameValuePairs.add(new BasicNameValuePair("var2", "var2"));
nameValuePairs.add(new BasicNameValuePair("var3", "var3"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
我的问题是这样的:Hows是否发送这个数据?我认为这将是这种格式 http://www.mydomain.com/myscript.php?name=name&var1=var1&var2=var2&var3=var3
所以我想这myscript.php会工作:
<?php
$name = $_GET['name'];
$filename = "newfile.php";
$newfile = fopen($filename, 'w+');
fwrite($newfile, $name);
fclose($newfile);
?>
我已经尝试了很多不同的方式,比如$名称=的file_get_contents('PHP://input')尝试查看正在接收的内容,但没有运气。
我是新来的android和php,所以我想我错过了一些很明显的东西,因为所有其他的Q/A都似乎跳过了'如何检索和使用发送的数据'。我需要的PHP脚本所做的就是抓住4个变量,然后像上面一样写入一个新文件。
我也想知道如何获得回应的应用程序只是说数据已收到。我认为这是由变量'响应'处理,但我无法测试。
有人能指出我正确的方向吗? 谢谢
谢谢。我已经使用了$ _POST,它使用'echo',但由于某种原因,它不会创建一个名为newfile.php的新文件。然而,我有其他的PHP文件在相同的目录中使用'相同'的代码,他们会愉快地创建该文件,如果它不存在。如果文件存在且可写,则可以使用,但否则会返回错误。任何想法? – lifeIsGood 2012-02-16 20:35:03
您是否拥有该文件夹的写入权限? _返回一个错误_,什么错误? – 2012-02-16 20:38:36
谢谢你。通过将整个文件夹的权限设置为“可写”,现在它正在工作。奇怪的是,和以前不一样,另一个PHP脚本能够打开并创建一个文件,如果它不存在。 – lifeIsGood 2012-02-16 20:52:51