我的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部分获取错误消息。有谁知道为什么会这样或者如何解决这个问题?
答案 0 :(得分:0)
您的问题可能存在于跨域策略文件中。服务器必须有一个crossdomain.xml文件,允许服务器外的用户向其发送数据。
Google crossdomain.xml了解更多信息。