我编写了以下代码。由于java
代码是通过POST
的方式发送数据的,所以不应执行php
文件中的第一个条件,而应执行第二个条件。但是我在android上看不到echo "$name";
的结果。但是当我在第一条件下使用POST
而不是GET
时,我可以在android中看到第一条件的结果。
public void GetText() throws UnsupportedEncodingException
{
// Get user defined values
Name = fname.getText().toString();
Email = email.getText().toString();
Login = login.getText().toString();
Pass = pass.getText().toString();
// Create data variable for sent values to server
String data = URLEncoder.encode("name", "UTF-8")
+ "=" + URLEncoder.encode(Name, "UTF-8");
data += "&" + URLEncoder.encode("email", "UTF-8") + "="
+ URLEncoder.encode(Email, "UTF-8");
data += "&" + URLEncoder.encode("user", "UTF-8")
+ "=" + URLEncoder.encode(Login, "UTF-8");
data += "&" + URLEncoder.encode("pass", "UTF-8")
+ "=" + URLEncoder.encode(Pass, "UTF-8");
String text = "";
BufferedReader reader=null;
// Send data
try
{
// Defined URL where to send data
URL url = new URL("http://127.0.0.1:8080/apps/reg.php");
// Send POST data request
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write( data );
wr.flush();
// Get the server response
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
// Read Server Response
while((line = reader.readLine()) != null)
{
// Append server response in string
sb.append(line + "'n");
}
text = sb.toString();
}
catch(Exception ex)
{
}
finally
{
try
{
reader.close();
}
catch(Exception ex) {}
}
// Show response on activity
content.setText( text );
}
和
<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$name = urldecode($_POST['name']);
$user = urldecode($_POST['user']);
$email = urldecode($_POST['email']);
$pass = urldecode($_POST['pass']);
print " ==== POST DATA =====
Name : $name
Email : $email
User : $user
Pass : $pass";
}
else if($_SERVER["REQUEST_METHOD"] == "POST") { echo "$name"; }
?>
在php中,$name是在if子句中定义的。
在外部声明
$name = urldecode($_POST['name']);
if ($_SERVER["REQUEST_METHOD"] == "GET") {
..
}
else if($_SERVER["REQUEST_METHOD"] == "POST") { echo "$name"; }