出于某种原因,我不能让我的异步任务传递我设置的post params。任何帮助表示赞赏。
这是我调用线程的onClick。请注意,customerInfo不为null,并且每个索引都有一个值。
EDITED:将客户端和帖子声明移入doInBackground并取出额外的,不需要的线程。 EDITED2:显然在点击您的网络服务器上的子目录时,您声明了您的网址
http://IP/subDirectory
没有尾随“/”apache不会将参数传递给index.php。
@Override
public void onClick(View v) {
new RegisterPost(progress).execute();
}
这是我的doInBackground
@Override
protected Void doInBackground(Void... voids) {
String[] customerInfo = getRegistrationInfo();
// Post
// Send info to tmiszone
String url = "http://SERVER_ADDRESS/"; // I had to add index.php to my url to get around the issue.
client = new DefaultHttpClient();
post = new HttpPost(url);
// Set post parameters
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("salesCode", customerInfo[0]));
pairs.add(new BasicNameValuePair("firstName", customerInfo[1]));
pairs.add(new BasicNameValuePair("lastName", customerInfo[2]));
try {
post.setEntity(new UrlEncodedFormEntity(pairs));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// Make connection
try {
response = client.execute(post);
} catch (ClientProtocolException e){
// TODO handle
response = null;
} catch (IOException e) {
// TODO handle
response = null;
} catch (Exception e) {
// TODO handle
response = null;
}
return null;
}
这是我的PHP代码。
<html>
<body>
<?php
error_log("hit by app");
foreach($_POST as $key=>$value){
error_log("// ".$key." ".$value);
}
?>
</body>
</html>
现在在我的apache日志中,我看到了“点击应用”消息,但没有别的。并且我的应用程序获得了一个空的html页面,其中只包含了PHP代码中预期的html和body标签。
答案 0 :(得分:0)
我遇到的问题与我的网址有关。我的网址就像
http://ip_address/testbed
我正在点击的页面是testbed目录中的index.php。因为我没有把尾随&#34; /&#34;在自动重定向期间,apache没有将参数发送到页面。添加&#34; /&#34;解决了这个问题。谢谢Sam_D的帮助。