Android客户端显示“网络错误”

By agenge at 2016-05-26 • 0人收藏 • 908人看过
  1. 使用fiddler调试,显示调用成功;

  2. nginx日志也显示成功,302状态;

  3. /page/1 路径也对,数据库确实有 topics ID为1的数据;


请问还有哪些会有问题?

23 个回复 | 最后更新于 2016-07-25
2016-05-26   #1

补充:

手机 魅蓝metal  5.1


2016-05-27   #2

debug模式编译,打log。

2016-05-27   #3

你客户端的配置文件里,写的是API的地址吧?

2016-05-27   #4

回复#3 @lincanbin :

APIAdress.java ?  只改了这里的配置文件.

BASIC_API_URL = "http://api.domain.com"
2016-05-27   #5

回复 #4 @agenge :

debug log 呢?

2016-05-27   #6

回复#5 @lincanbin :

Debug 模式启动,没看到任何输出,难道没配成功。但是console有输出:

Connected to the target VM, address: 'localhost:8601', transport: 'socket'


说明已经debug成功了。

2016-05-27   #7

回复 #6 @agenge :

你的日志级别不对,每个访问都会打下整个log 的。

2016-05-27   #8

回复#7 @lincanbin :

为什么会报类型转换错误?

W/System.err: java.lang.ClassCastException: java.lang.String cannot be cast to org.json.JSONObject
05-27 08:48:16.142 10552-11137/com.domain.carbonforum W/System.err:     at com.domain.carbonforum.util.HttpUtil.postRequest(HttpUtil.java:232)
05-27 08:48:16.142 10552-11137/com.domain.carbonforum W/System.err:     at com.domain.carbonforum.IndexActivity$GetTopicsTask.doInBackground(IndexActivity.java:437)
05-27 08:48:16.142 10552-11137/com.domain.carbonforum W/System.err:     at com.domain.carbonforum.IndexActivity$GetTopicsTask.doInBackground(IndexActivity.java:375)
2016-05-27   #9
JSONObject jsonObject = HttpUtil.postRequest(


查询出来 是 null

2016-05-27   #10

不懂Java/安卓开发表示毫无鸭梨(其实自学过一点Java但是没学会)。

2016-05-27   #11

回复#7 @lincanbin :

JSONTokener jsonParser = new JSONTokener(postResult);
JSONObject jsonObject = (JSONObject) jsonParser.nextValue();


其中 postResult 调试显示是一个完整的HTML代码。问题就出现在第二句 强制类型转换,不知道为什么不能强制转换。


2016-05-27   #12

排查了一下,问题应该出现于 postResult 是原生xml格式,而不是 原生 json格式,导致转换失败。   


postResult 为何不是json原生格式呢?

2016-05-27   #13

回复#12 @agenge :

我就问你,api.domain.com,你绑定这个域名了吗?

根据我的猜测,你应该没解析,或者没绑定这个域名。


事实上,域名要使用,解析和绑定,是不可少的。

2016-05-27   #14

回复#13 @lincanbin :

绑定了的,这个没问题。域名解析、Nginx server_name都设置了的,日志也显示能收到请求。


例如刷新首页:

- - [27/May/2016:11:15:07 +0800] "POST /page/1 HTTP/1.1" 302 5 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1; m1 metal Build/LMY47I)"
 - - [27/May/2016:11:15:07 +0800] "GET /page/1 HTTP/1.1" 302 5 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1; m1 metal Build/LMY47I)"
 - - [27/May/2016:11:15:07 +0800] "GET / HTTP/1.1" 200 2722 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1; m1 metal Build/LMY47I)"


现在的问题在于:

服务器返回的postResult 是一个html(xml)文本,理论上应该要是json文本才正确。

2016-05-27   #15

回复#14 @agenge :

你访问你的API那个域名,例如:

https://api.94cb.com/

然后截图给我看,返回这个说明正常:

{
	"Status": 0,
	"ErrorCode": 403,
	"ErrorMessage": "Forbidden"
}


2016-05-27   #16

回复#15 @lincanbin :

返回整个首页的HTML代码。 浏览器访问的话,就和访问 domain.com一样的结果。

2016-05-27   #17

回复#16 @agenge :

blob.png

这里填了吗?

2016-05-27   #18

回复#17 @lincanbin :

我错了。。。这里没有设置导致的。


但是这里不填写,默认请求的domain.com?

2016-05-27   #19

回复#18 @agenge :

当然,不你在我程序里登记一下,我怎么知道哪个域名对应的是API。

登录后方可回帖

登 录
信息栏
购买PHP虚拟主机 / VPS

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.0.1
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

Loading...