Android 获取JSON数据时获取空响应

Android 获取JSON数据时获取空响应,android,json,Android,Json,当我尝试从网站获取JSON数据时,我可以在浏览器中看到数据,但当我尝试通过编程获取JSON数据时,我会得到空响应这是我尝试获取的url,我会在我的应用程序中得到空响应,只要将url字符串中的值从1113更改为1416,JSON数据就会正确显示。 下面是我的代码 protected Void doInBackground(Void... params) { String matchesUrl = "http://dotsyndicate.com/unionsports/procedure.php?

当我尝试从网站获取JSON数据时,我可以在浏览器中看到数据,但当我尝试通过编程获取JSON数据时,我会得到空响应这是我尝试获取的url,我会在我的应用程序中得到空响应,只要将url字符串中的值从1113更改为1416,JSON数据就会正确显示。 下面是我的代码

protected Void doInBackground(Void... params) {
String matchesUrl = "http://dotsyndicate.com/unionsports/procedure.php?gc=fb1113&getMatches=1"
            data = new ArrayList<ListGroup>();
            HttpHandler sh = new HttpHandler();
            String jsonStr = sh.makeServiceCall(matchesUrl);
            Log.e(TAG, "Response from url: " + jsonStr);
            if (jsonStr != null||jsonStr !="") {
                data = jsonExtractor.extractJson(jsonStr);
            }else{
                Log.e(TAG, "Response from url: null");
            }
            return null;
        }
来自URL的响应:在应用程序内部

E/FootBallMainFragment: Json Data is downloading
06-06 16:06:03.420 23817-24720/com.dotsyndicate.al_islah I/System.out: *** url=http://dotsyndicate.com/unionsports/procedure.php?gc=fb1113&getMatches=1
06-06 16:06:03.420 23817-24720/com.dotsyndicate.al_islah I/System.out: [CDS]rx timeout:0
06-06 16:06:03.421 23817-24720/com.dotsyndicate.al_islah I/System.out: [OkHttp] sendRequest>>
06-06 16:06:03.421 23817-24720/com.dotsyndicate.al_islah I/System.out: [OkHttp] sendRequest<<
06-06 16:06:03.851 23817-24720/com.dotsyndicate.al_islah E/FootBallMainFragment: Response from url: 
06-06 16:06:03.870 23817-23817/com.dotsyndicate.al_islah D/ColorDrawable: Color = -1118482, canvas = android.view.GLES20RecordingCanvas@4422f0f, mTintMode = SRC_IN, mTint = null, ColorDrawable = android.graphics.drawable.ColorDrawable@36589616
06-06 16:06:03.871 23817-23817/com.dotsyndicate.al_islah D/ColorDrawable: Color = -13619152, canvas = android.view.GLES20RecordingCanvas@c76cb97, mTintMode = SRC_IN, mTint = null, ColorDrawable = android.graphics.drawable.ColorDrawable@17401d0b
E/FootBallMainFragment: Json Data is downloading
06-06 16:04:55.988 23817-24044/com.dotsyndicate.al_islah I/System.out: *** url=http://dotsyndicate.com/unionsports/procedure.php?gc=fb17&getMatches=1
06-06 16:04:55.994 23817-24044/com.dotsyndicate.al_islah I/System.out: [CDS]rx timeout:0
06-06 16:04:55.996 23817-24044/com.dotsyndicate.al_islah I/System.out: [OkHttp] sendRequest>>
06-06 16:04:55.999 23817-24044/com.dotsyndicate.al_islah I/System.out: [OkHttp] sendRequest<<
06-06 16:04:56.386 23817-24044/com.dotsyndicate.al_islah E/FootBallMainFragment: Response from url: {"2017-06-08":{"11|2:1|4:1|0":"REAL MADRID|ZERU|23:30|0|0","12|6:2|8:2|0":"AL AHLY|JUVENTUS|23:55|0|0"},"2017-06-07":{"9|1:1|3:1|0":"ATHLETICO|JEMTEM|23:30|0|0","10|5:2|7:2|0":"PREDATORS|JB|23:55|0|0"},"2017-06-06":{"8|6:2|7:2|0":"AL AHLY|JB|23:55|0|0","7|2:1|3:1|0":"REAL MADRID|JEMTEM|23:30|0|0"},"2017-06-01":{"6|8:2|5:2|0":"JUVENTUS|PREDATORS|23:55|0|0","5|4:1|1:1|0":"ZERU|ATHLETICO|23:30|0|0"},"2017-05-31":{"4|7:2|8:2|0":"JB|JUVENTUS|23:55|0|0","3|3:1|4:1|0":"JEMTEM|ZERU|23:30|0|0"},"2017-05-30":{"2|5:2|6:2|0":"PREDATORS|AL AHLY|23:55|0|0","1|1:1|2:1|0":"ATHLETICO|REAL MADRID|23:30|0|0"}}
E/FootBallMainFragment:Json数据正在下载
06-06 16:06:03.420 23817-24720/com.dotsindicate.al_islah I/System.out:**url=http://dotsyndicate.com/unionsports/procedure.php?gc=fb1113&getMatches=1
06-06 16:06:03.420 23817-24720/com.dotsindicate.al_islah I/System.out:[CDS]接收超时:0
06-06 16:06:03.421 23817-24720/com.dotsindicate.al_islah I/System.out:[OkHttp]发送请求>>
06-06 16:06:03.421 23817-24720/com.dotsindicate.al_islah I/System.out:[OkHttp]sendRequest>
06-06 16:04:55.999 23817-24044/com.dotsindicate.al_islah I/System.out:[OkHttp]发送请求
我认为问题在于阅读下面陈述的数据


您在每一行中都添加了“\n”…我不明白它的用法,您应该在删除
后尝试。从这里添加(“\n”)

终于解决了问题。
问题来自服务器端。在使用HttpURLConnection向用户发出请求时,它会发送null useragent,这就是服务器没有正确响应的原因。 只需在初始化HttpURLConnection后添加自定义useragent即可解决此问题

conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71");

让我告诉你一件事,json太糟糕了,你应该要求一个更好的json格式的响应来让你的生活更轻松。它只是一个json格式的2D数组编码。唯一的问题是我无法理解为什么我的应用程序无法识别来自第一个url的响应@JonathanAsteNo更改,仍然得到来自url空的响应
while ((line = reader.readLine()) != null) {
                sb.append(line).append('\n');
            }
conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71");