猿问

Java访问一个url获得的返回结果和浏览器获得的返回结果不同

最近在写一个课程作业的时候,要用到猫眼电影的API获取数据,碰到一个头疼的问题。

url为:http://m.maoyan.com/showtime/wrap.json?cinemaid=1111&movieid=248680

我直接在浏览器中访问这个url能得到对应的Json数据;

但是在Java代码中用这个url却得不到任何数据;

 

访问url的方法如下:

 1     public static String getURLContent(String urlStr) {             
 2         URL url = null;            
 3         //http连接
 4         HttpURLConnection httpConn = null;          
 5         //输入流
 6         BufferedReader in = null; 
 7         StringBuffer sb = new StringBuffer(); 
 8         try{
 9             url = new URL(urlStr);
10             httpConn = (HttpURLConnection)url.openConnection();
11             InputStreamReader inputStreamReader =  new InputStreamReader(httpConn.getInputStream(),"UTF-8");
12             in = new BufferedReader(inputStreamReader); 
13             String str = null;  
14             while((str = in.readLine()) != null) {  
15                 sb.append( str );
16             }
17         } catch (Exception ex) {
18             
19         } finally{  
20             try{           
21                 if(in!=null) {
22                     in.close();   
23                 }
24             }catch(IOException ex) {
25                 
26             }
27         }   
28         String result =sb.toString();   
29         //System.out.println(result);   
30         return result;
31     }

 

 

我观察这个url后发现直接访问http://m.maoyan.com/showtime/wrap.json这个path的时候,猫眼的服务器是不会返回Json数据的,所以觉得问题可能是出在这里,但是不知道有什么解决办法去控制这个url。

 

恳求路过大神帮帮忙~~

米琪卡哇伊
浏览 1222回答 12
12回答

慕尼黑5688855

  比较 headers 部分的差异

至尊宝的传说

我在代码里面openConnection之后查看这个连接的headers,第一行是 HTTP/1.1 403 Forbidden, 请问这样是不是说明猫眼实际上没有开方这些数据的访问权限呀?

肥皂起泡泡

谢谢帮助

LEATH

有可能是跨域问题

慕的地8271018

谢谢回复

慕容708150

可能需要猫眼开放权限给你。

冉冉说

我现在也开始怀疑可能是权限的问题,请问你这样推断的理由是什么啊?

繁星点点滴滴

谢谢回复

汪汪一只猫

conn = (HttpURLConnection) url.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");   这是服务器单方面默认杜绝后台数据采集座的防护,加上这个就可以了

慕妹3146593

conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
随时随地看视频慕课网APP

相关分类

Java
我要回答