Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中进行同步HttpRequest?_Android_Http_Synchronization - Fatal编程技术网

如何在Android中进行同步HttpRequest?

如何在Android中进行同步HttpRequest?,android,http,synchronization,Android,Http,Synchronization,我想执行一个保持与服务器连接的函数。 当出现一些新消息时,我应该会收到一个方法。我们的iOS版本使用同步请求来控制此方法,但如何在Android中实现此功能?试试,谁的方法可以: 同步发送请求并获取响应 查看此链接了解如何实现它的示例:简短的回答是“您不能”,因为显示线程不允许您发出HTTP请求。较长的答案是,只要您不介意调用的“sync”部分在线程中,您就可以使用apachecommons,只需在服务器获取/发布数据时进行阻塞的服务器调用。但是,您仍然需要为线程提供一个可运行的回调,当它处理完

我想执行一个保持与服务器连接的函数。 当出现一些新消息时,我应该会收到一个方法。我们的iOS版本使用同步请求来控制此方法,但如何在Android中实现此功能?

试试,谁的方法可以:

同步发送请求并获取响应


查看此链接了解如何实现它的示例:

简短的回答是“您不能”,因为显示线程不允许您发出HTTP请求。较长的答案是,只要您不介意调用的“sync”部分在线程中,您就可以使用apachecommons,只需在服务器获取/发布数据时进行阻塞的服务器调用。但是,您仍然需要为线程提供一个可运行的回调,当它处理完请求时,它将调用该回调。

我编辑了这个问题以使其更清晰。如果您觉得我的更改失去了意义,请将其还原。谢谢。过去,我使用AsyTask或handler来实现该功能。但现在,我想进行长轮询,所以我想使用synchronized方法。当然,它应该用其他方法编写,但是我仍然不知道该怎么做。我很难在appache commons或java.util.net中找到正确的答案。AsyncTask只是一个线程的包装器(它有一些很好的特性,可以知道它何时完成了您希望它做的事情)。问题是Android 3.0之后将不允许您在主(显示)线程上进行网络调用。因此,您别无选择,只能生成一些备用线程来进行网络调用。然而,如果你的抱负是一个长期的民意调查,那么阻止不是答案。我劝你改用插座。更有效地实现与服务器的连续来回数据交换。谢谢。我尝试过使用HTTPRequestExecutor的这种方法。但是当我更改服务器上的流时,Android应用程序无法接收到更改