反向代理请求在loopj.AsyncHttp中的onSuccess中返回null

Posted

技术标签:

【中文标题】反向代理请求在loopj.AsyncHttp中的onSuccess中返回null【英文标题】:Reverse proxified request return null in onSuccess in loopj.AsyncHttp 【发布时间】:2016-06-30 23:59:47 【问题描述】:

我必须在 android 中为我的应用程序使用一个 restful API,在这个 API 中,我们必须通过我们的服务器反向代理我们的应用程序请求(我为此使用 nginx proxy_pass),因为 API 只回答一个注册的 IP。 当我使用 curl 通过 nginx 的反向代理发送请求时,它工作得很好。 但是当我的 Android 应用程序使用 loopj.asynchttp 向它发送请求时,onSuccessful 会触发但请求状态为 0,并且答案正文为空,我完全感到困惑。它不返回任何数据,所以我可以找出它有什么问题。 在手机的nginx请求日志中出现了,所以请求肯定到达了我的服务器,但是返回的答案有问题。

【问题讨论】:

【参考方案1】:

当服务器或 loopJ 关闭您的连接时,就会出现这些问题。 这有几个原因:

    防火墙 Lo​​opJ 超时 enginx 超时

首先,它取决于您的防火墙,但配置起来非常容易。

对于loopJ的超时,可以使用setTimeout函数,如下代码:

AsyncHttpClient client = new AsyncHttpClient();
client.setTimeout(//connection time you need as an integer);

您可以使用以下链接来设置您的 nginx 超时配置: click here!

希望这些提示对您有所帮助。

【讨论】:

如何检查这些问题? 感谢您,因为我的服务器速度很慢,并且 loopj 的超时时间还不够。我增加了它,问题解决了。

以上是关于反向代理请求在loopj.AsyncHttp中的onSuccess中返回null的主要内容,如果未能解决你的问题,请参考以下文章

NGINX反向代理在测试中的几个应用场景

在安全的反向代理后面运行sonarqube时,“请求中的CSRF错误”

nginx反向代理,实现动静分离

Squid代理服务器(传统,反向,透明和ACL的使用)

squid 反向代理服务器

apache反向代理更改url