JAVA API接口提供注意事项

来源:互联网 发布:socket长连接 java 编辑:程序博客网 时间:2024/06/05 05:38
如果是API提供方,最好申明头部定义,方便调用方调用,否则会有跨域请求的问题。
ServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin", "*");
如果是调用方,而提供方没有申明允许跨域请求。那有两种解决方案:
1、 采用Jquery 的 ajax方式 请求类型为jsonp 方式:$.ajax({        type : "get", //jquey是不支持post方式跨域的        async:false,data:{cellphone: '13912345871',real_name: 'jim',password: pwd,baby_dob: '2011-12-30',access_token: key,datasource: 'third'},        url : 'http://www.xxx.com.cn/test.json', //跨域请求的URL        dataType : "jsonp",        //传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)        jsonp: "callback",beforeSend :function(msg){alert("正在查询您的绑定信息……");},        //成功获取跨域服务器上的json数据后,会动态执行这个callback函数        success : function(msg){             //var jsonObj = eval(msg);alert(msg);        }    });
2、 直接用JAVA 在action中执行URL得到返回值处理: private String getBackJson(String url){StringBuffer htmlBuffer = new StringBuffer();String returnStr = null;try {InputStream inputSource = new URL(url).openStream();int ch;while ((ch = inputSource.read()) > -1) {htmlBuffer.append((char) ch);}inputSource.close();returnStr = new String(htmlBuffer);returnStr = new String(returnStr.getBytes("ISO8859_1"),"UTF-8");} catch (Exception e) {System.out.println("get url result error!");e.printStackTrace();}return returnStr;}


1 0
原创粉丝点击