立即向android发送php file1响应,然后从file1调用另一个php file2
我从android调用file1.php,希望它向android发送xml响应,然后立即从file1.php调用file2.php。我还想将一个数组从file1.php发送到file2.php。如何在不延迟向android发送响应的情况下实现这一点,因为android只需要来自file1的响应。但是file2输入是file1的输出。有没有一种方法可以让我将file1的xml输出发送到android,然后立即调用file2 详情: Android:->使用google places api在餐馆附近显示 php:->获取google places api附近餐馆的列表并将其发送到android。 紧接着,我想从File1.php调用File2.php,在那里我发送餐厅的参考id(File1的o/p),这样我就可以得到每个餐厅的详细信息 Android代码:立即向android发送php file1响应,然后从file1调用另一个php file2,php,android,httprequest,httpresponse,Php,Android,Httprequest,Httpresponse,我从android调用file1.php,希望它向android发送xml响应,然后立即从file1.php调用file2.php。我还想将一个数组从file1.php发送到file2.php。如何在不延迟向android发送响应的情况下实现这一点,因为android只需要来自file1的响应。但是file2输入是file1的输出。有没有一种方法可以让我将file1的xml输出发送到android,然后立即调用file2 详情: Android:->使用google places api在餐馆附
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("latitude",latt));
nameValuePairs.add(new BasicNameValuePair("longitude", longi));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.xyz.com/file1.php");
httpPost.setEntity(new UrlEncodedFormEntity (nameValuePairs));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
line = EntityUtils.toString(httpEntity);
File2.php
for(each restaurant)
//get details and do some back end processing.
最重要的是,android应该在file2开始执行之前收到响应。您不能与现有的请求-响应流并行执行外部php文件(实际上是发出新的http请求)。存在两种可能的解决方案
file1.php
处理请求时,您应该在队列中添加新任务。与主web服务器进程并行,您应该有一个php“守护进程”始终运行,它查找新任务并在后台处理它们(通过file2.php
获取所需的详细信息)。一旦任务准备就绪(或任务的一部分,例如有多条包含详细信息的第一条记录可用),请在队列中对其进行适当标记。Android应用程序应该定期检查新的详细信息,并使用另一个访问点(比如file3.php
)加载它们,该访问点将返回部分或完全执行的任务的可用详细信息。我不知道您使用哪种服务器端框架(如果有的话),但其中一些框架提供了基于cron
的“批处理作业”。但这看起来并不容易。最合适的方法是使用,即服务器应通知您的客户机列表中已发送给客户机的项目的新可用详细信息file2.php
代理到GooglePlaces。换句话说,file2.php
由客户端而不是服务器执行此外,您可能还应该看看php以外的一些服务器端工具,例如,它更适合实现和(选择其中一个)。提供更多详细信息:从一个php文件“调用”另一个php文件的目的是什么,以及“调用”是如何编码的?@Stan:添加了更多详细信息。希望它现在更清晰。提供一些代码。听起来您需要将
file2.php
包含到file1.php
中,并在将列表中的每个项目发送到Android应用程序之前调用函数来填写详细信息。@Stan:code已添加。据我所知,include file2.php就像将代码复制粘贴到file1。所以file1处理=file1+file2。我不希望这样,因为文件1花费的时间很少,而文件2花费的时间很多。在file2完成之前,我的android不应该被搁置。您的解释非常清楚解决方案1的复杂性。因此,我计划只使用解决方案2。我只是想确认这在php中是不容易实现的。我得到了我的答案。非常感谢!
for(each restaurant)
//get details and do some back end processing.