java WebServer接口怎么java 异步调用web接口?

83181人阅读
1. Java调用webservice接口方法
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
我们也可以在以下网站找到许多 webservice provider列表, 你可以使用下面的URL来测试你的webservice程序。
http://www.webservicex.net/ws/default.aspx
这上面列出了70多个包括很多方面的free webservice provider,utilities-&global weather就可以获取全球的天气预报。
下面我们来看Java如何通过WSDL文件来调用这些web service(以 COPS WebSSO为例)
1.1 [Apache提供]直接通过AXIS调用远程的web service
我认为这种调用方式适合比较那种返回比较简单的数据的service, 比如,天气预报,这些内容肯定可以通过一个很简单的xml来返回。还有就是WebSSO,返回的就是一个字符串。
这种调用方式的好处就是简单(开发简单,调用简单,只要service提供方不改动对外的方法接口,客户端都无需有代码带动),无需对web service有太深了解,只要按照套路去掉用就可以了。
直接调用模式如下:
&&LogonClientWithURL.java&&
package ws.
import org.apache.axis.client.C
import org.apache.axis.client.S
public class LogonClientWithURL {
& public static void main(String args[])
throws Exception {
&&&&& & try {
&&&&&&&&&&&&&&&&& String urlname = &http://192.168.194.23:9080/Logon/services/Logon?wsdl& ;
&&&&&&&&&&&&&&&&& urlname = &http://192.168.194.23:9080/Logon/services/Logon&;
&&&&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&&&& Service s = new& Service();
&&&&& &&&&&&&&&&& Call call = (Call) s.createCall();
&&&&&&&&&&&&&&&&& call.setTimeout(new Integer(5000));
&&&&&&&&&&&&&&&&& call.setOperation( &getSecurityToken& );
&&&&&&&&&&&&&&&&& call.setTargetEndpointAddress(urlname);
&&&&&&&&&&&&&&&&& &&&
&&&&&&&&&&&&&&&&& Object[] fn01 = { &john& , &john& , null ,null };
&&&&&&&&&&&&&&&&& String val = (String)call.invoke(fn01);
&&&&&&&&&&&&&&&&& System.out .println( &getSecurityToken(correct):&& + val);
&&&&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&&&& Object[] fn02 = { &john& , &john2& , null ,null };
&&&&&&&&&&&&&&&&& String va2 = (String)call.invoke(fn02);
&&&&&&&&&&&&&&&&& System.out .println( &getSecurityToken(wrong):&& + va2);
&&&&&&&&&&&
&&&&& & } catch (Exception e) {
&&&&&&&&&&& & //java.io.InterruptedIOException: Read timed out
&&&&&&&&&&& & System.out.println(e.getMessage());
1.2 [Apache提供]使用WSDL2Java把WSDL文件转成本地类,然后像本地类一样使用。
这种方式应该可以调用所有的webService。
同时这个调用方式适合那种业务比较复杂的Service (特别是企业应用, 不是外部所有人都能无限制访问那种Service),比如,这个Service返回的xml内容比较复杂,同时多个客户端系统都需要访问这个Service,在这种情况,service提供方可能会考虑返回一个java类。毕竟,每个客户端都要解析xml也够麻烦的,还不如让service提供方返回一个类。
调用模式如下:
1)使用WSDL2Java把WSDL文件转成本地类。 我这里写了bat文件:
&&WSDL2JAVA.bat&&
set Axis_Lib=.\lib
set Java_Cmd=D:\Dev\JDK\jdk1.4.2_12\bin\java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\src
set Package=com.ubs.ws
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% http:\\192.168.194.23:9080\Logon\services\Logon\wsdl\Logon.wsdl
运行直接生成以下java类
Logon.java
LogonService.java
LogonServiceLocator.java
LogonSoapBindingStub.java
2) &&LogonClientWithStub.java&&
package test.cis.
import test.cis.*;
public class LogonClientWithStub {
&&&&& public static void main(String[] args) {
&&&&&&&&&&& try {
&&&&&&&&&&&&&&&&& Logon locator = new LogonServiceLocator().getLogon();
&&&&&&&&&&&&&&&&& String result = locator.getSecurityToken(&john& , &john& ,null ,
&&&&&&&&&&&&&&&&& System.out.println(&getSecurityToken(correct): & + result);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&& result = locator.getSecurityToken(&john& , &john2& ,null ,
&&&&&&&&&&&&&&&&& System.out.println(&getSecurityToken(wrong): & + result);
&&&&&&&&&&&&&&&&&
&&&&&&&&&&& } catch (Exception e) {
&&&&&&&&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&&&&&&&&& e.printStackTrace();
&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&
&&&&& &&&&&
1.3 [Apache提供]直接SOAP调用远程的webservice
apache的soap项目,不过如今已经被axis取代了,后者重新进行了架构设计,功能更齐全。
前者已停止开发。所以建议用axis。也就是1.1 & 1.3
1.4 [XFire提供] 使用XFire调用WebService
有兴趣的可以下载XFire的jar来学习一下。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:286155次
积分:2655
积分:2655
排名:第10588名
原创:22篇
转载:150篇
评论:16条
(1)(7)(1)(1)(3)(12)(11)(9)(1)(8)(1)(9)(8)(3)(3)(4)(1)(1)(3)(4)(2)(2)(2)(2)(1)(12)(40)(1)(1)(1)(1)(1)(1)(2)(10)(3)后使用快捷导航没有帐号?
云之家系列
$('append_parent').appendChild(menu);
ajaxinnerhtml($('onekeymenu_menu'), '');
//ajaxget($('onekeymenu').href, 'onekeymenu_menu', 'ajaxwaitid');
showMenu({'ctrlid':'onekeymenu','ctrlclass':'a','duration':2,'fade':1});
function postToWb(){
var _t = encodeURI('平台推出的webapi使用java如何调用');
var _url = encodeURIComponent('/forum.php?mod=viewthread&tid=904547');
var _appkey = encodeURI('');
var _pic = encodeURI('');
var _site = '/';
var _u = 'http://v./share/share.php?title='+_t+'&url='+_url+'&appkey='+_appkey+'&site='+_site+'&pic='+_
window.open( _u,'转播到腾讯微博', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
function postToqz(){
var _t = encodeURIComponent('平台推出的webapi使用java如何调用');
var _url = encodeURIComponent('/forum.php?mod=viewthread&tid=904547');
var _u = 'http://sns./cgi-bin/qzshare/cgi_qzshare_onekey?title='+_t+'&url='+_
window.open( _u,'分享到QQ空间', 'width=770, height=540, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
function postToSq() {
var _t = encodeURIComponent('平台推出的webapi使用java如何调用');
var _url = encodeURIComponent('/forum.php?mod=viewthread&tid=904547');
var _u = '/post?from=3&jumpback=2&noui=1&uri='+_url+'&title='+_t;
window.open( _u,'收藏到QQ书签', 'width=930,height=570,left=50,top=50,toolbar=no,menubar=no,location=no,scrollbars=yes,status=yes,resizable=yes' );
平台提供的webapi
在java中该如何调用,各参数如何配置
注册时间最后登录红花6447 朵积分9325精华0帖子主题UID422099
WebApi在java中用JSON的方式访问调用,标准的接口见以下文档
具体使用方法,跟Java调用一般WebAPI接口一样的,可以网上搜一下相关资料
本帖最后由 liang_wu86 于
16:40 编辑
帖子中引用了kingdee.bos.webapi.client.dll,在java中不能直接引用,直接用json构造参数调用,数据中心 ...
花了些时间,给你写了个示例,是登录并保存采购入库单的,需要引用的类库Jar文件见附件。
关于参数格式,你可以先看一下WebApi SDk组件,也就是Kingdee.BOS.WebApi.FormService中定义的参数名称和数据类型,
然后像保存的具体参数值,格式可以在系统中看到,有一个Web Api菜单,里面有请求参数样例。
另,样例仅供参考,逻辑控制不甚完善,请自行妥善处理。
import java.net.URI;
import org.apache.http.H
import org.apache.http.HttpR
import org.apache.http.client.HttpC
import org.apache.http.client.methods.HttpP
import org.apache.http.entity.StringE
import org.apache.http.impl.client.DefaultHttpC
import org.apache.http.util.EntityU
import net.sf.json.JSONO
public class SaveSKD {
& && &&&private static String sessionkey = &kdservice-sessionid&;
& && &&&private static String aspnetsessionkey = &ASP.NET_SessionId&;
& && &&&private static String sessionValue = &&;
& && &&&private static String aspnetsessionValue = &&;
& && &&&public static void main(String[] args) throws Exception {
& && && && && & SavePurRKD();
& && &&&}
& && &&&
& && &&&/**
& && && &* 保存采购入库单
& && && &* @throws Exception
& && && &*/
& && &&&@SuppressWarnings({ &resource&, &deprecation& })
& && &&&private static void SavePurRKD() throws Exception {
& && && && && & // 定义httpClient的实例
& && && && && & HttpClient httpclient = new DefaultHttpClient();
& && && && && & JSONObject jsonResult =
& && && && && & /********** 用户登录Begin ************************/
& && && && && & try {
& && && && && && && && &//登录,校验用户的API接口地址
& && && && && && && && &String Login_URL = &http://hszc/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.mon.kdsvc&;
& && && && && && && && &URI uri = new URI(Login_URL);
& && && && && && && && &HttpPost method = new HttpPost(uri);
& && && && && && && && &//登录请求参数
& && && && && && && && &String jsonParam = &{\&acctID\&:\&08a5cb11e43cb4719bdbcc\&,\&userName\&:\&demo\&,\&password\&:\&888888\&,\&lcid\&:2052}&;
& && && && && && && && &StringEntity entity = new StringEntity(jsonParam, &utf-8&);
& && && && && && && && &entity.setContentEncoding(&UTF-8&);
& && && && && && && && &entity.setContentType(&application/json&);
& && && && && && && && &method.setEntity(entity);
& && && && && && && && &HttpResponse result = httpclient.execute(method);
& && && && && && && && &// 请求发送成功,并得到响应
& && && && && && && && &if (result.getStatusLine().getStatusCode() == 200)
& && && && && && && && &{
& && && && && && && && && && &&&String str = &&;
& && && && && && && && && && &&&// 读取服务器返回过来的json字符串数据
& && && && && && && && && && &&&str = EntityUtils.toString(result.getEntity());
& && && && && && && && && && &&&// 把json字符串转换成json对象
& && && && && && && && && && &&&jsonResult = JSONObject.fromObject(str);
& && && && && && && && && && &&&//判断登录是否成功
& && && && && && && && && && &&&if (jsonResult.getInt(&LoginResultType&) == 1) {
& && && && && && && && && && && && && & System.out.println(&登录成功!&);
& && && && && && && && && && && && && & // 获取Cookie
& && && && && && && && && && && && && & Header[] headers = result.getHeaders(&Set-Cookie&);
& && && && && && && && && && && && && & for (int i = 1; i & headers. i++) {
& && && && && && && && && && && && && && && && &Header header = headers[i];
& && && && && && && && && && && && && && && && &String headerValue = header.getValue();
& && && && && && && && && && && && && && && && &// 登录成功返回的登录session信息,保存下来,下面再调用接口的时候传给服务端
& && && && && && && && && && && && && && && && &if (headerValue.trim().startsWith(sessionkey)) {
& && && && && && && && && && && && && && && && && && &&&int endIndex = headerValue.indexOf(';');
& && && && && && && && && && && && && && && && && && &&&sessionValue = headerValue.substring(20, endIndex);
& && && && && && && && && && && && && && && && &} else if (headerValue.trim().startsWith(
& && && && && && && && && && && && && && && && && && && && && & aspnetsessionkey)) {
& && && && && && && && && && && && && && && && && && &&&int endIndex = headerValue.indexOf(';');
& && && && && && && && && && && && && && && && && && &&&aspnetsessionValue = headerValue.substring(18,
& && && && && && && && && && && && && && && && && && && && && && && && &endIndex);
& && && && && && && && && && && && && && && && &}
& && && && && && && && && && && && && & }
& && && && && && && && && && &&&}
& && && && && && && && && && &&&// 登录失败,不继续
& && && && && && && && && && &&&else {
& && && && && && && && && && && && && & System.out.println(&登录失败!&);
& && && && && && && && && && && && && &
& && && && && && && && && && &&&}
& && && && && && && && &}
& && && && && && && && &else
& && && && && && && && &{
& && && && && && && && && && &&&System.out.println(&登录异常!&);
& && && && && && && && &}
& && && && && & } catch (Exception e) {
& && && && && && && && &System.out.println(&post请求提交失败:& + e);
& && && && && && && && &
& && && && && & }
& && && && && & /********** 用户登录END ************************/
& && && && && & /********** 保存采购入库单Beigin************************/
& && && && && & try {
& && && && && && && && &// 数据保存接口地址
& && && && && && && && &String Save_URL = &http://hszc/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.mon.kdsvc&;
& && && && && && && && &URI save_uri = new URI(Save_URL);
& && && && && && && && &HttpPost method = new HttpPost(save_uri);
& && && && && && && && &//采购入库单保存参数
& && && && && && && && &String jsonParam = &{\&formid\&:\&STK_InStock\&,\&obj\&:{\&Creator\&:\&IOM\&,\&NeedUpDateFields\&:[],\&Model\&:{\&FID\&:0,\&FBillTypeID\&:{\&FNumber\&:\&RKD01_SYS\&},\&FBusinessType\&:\&CG\&,\&FDate\&:\&\&,\&FStockOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FDemandOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FPurchaseOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FCorrespondOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FSupplierId\&:{\&FNUMBER\&:\&VEN00003\&},\&FSupplyId\&:{\&FNUMBER\&:\&VEN00003\&},\&FSupplyContact\&:\&\&,\&FSupplyAddress\&:\&\&,\&FSettleId\&:{\&FNUMBER\&:\&VEN00003\&},\&FChargeId\&:{\&FNUMBER\&:\&VEN00003\&},\&FCreatorId\&:{\&FUserAccount\&:\&demo\&},\&FCreateDate\&:\&\&,\&FApproveDate\&:\&\&,\&FIsInterLegalPerson\&:false,\&FInStockFin\&:{\&FSettleOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FPayOrgId\&:{\&FNUMBER\&:\&101.1\&},\&FSettleCurrId\&:{\&FNumber\&:\&PRE001\&},\&FIsIncludedTax\&:false,\&FBillAmount\&:1000,\&FBillTaxAmount\&:170,\&FBillAllAmount\&:1170,\&FBillCostAmount\&:1970,\&FBillCost\&:800,\&FLocalCurrId\&:{\&FNumber\&:\&PRE001\&},\&FExchangeRate\&:1,\&FBillAmount_LC\&:1000,\&FBillTaxAmount_LC\&:170,\&FBillAllAmount_LC\&:1170,\&FBilCostAmount_LC\&:1970,\&FISGENFORIOS\&:false},\&STK_InStock__FInStockEntry\&:[{\&FEntryID\&:0,\&FMaterialId\&:{\&FNumber\&:\&1.01.001.0070\&},\&FUnitID\&:{\&FNumber\&:\&Pcs\&},\&FBaseUnitQty\&:10,\&FREALQTY\&:10,\&FPrice\&:100,\&FAmount\&:1000,\&FEntryTaxRate\&:17,\&FTaxPrice\&:117,\&FEntryTaxAmount\&:170,\&FAllAmount\&:1170,\&FAmount_LC\&:1000,\&FTaxAmount_LC\&:170,\&FAllAmount_LC\&:1170,\&FCostPrice\&:100,\&FPROCESSFEE\&:800,\&FMaterialCosts\&:1170,\&FEntryCostAmount\&:1970,\&FCostAmount_LC\&:1970,\&FStockId\&:{\&FNumber\&:\&CK001\&},\&FDiscount\&:0,\&FDiscountRate\&:0,\&FContractlNo\&:\&\&,\&FNote\&:\&\&}]}}}&;
& && && && && && && && &StringEntity entity = new StringEntity(jsonParam, &utf-8&);
& && && && && && && && &entity.setContentEncoding(&UTF-8&);
& && && && && && && && &entity.setContentType(&application/json&);
& && && && && && && && &
& && && && && && && && &//把成功登录的Session信息传进去,获取连接信息
& && && && && && && && &method.setHeader(sessionkey, sessionValue);
& && && && && && && && &method.setHeader(aspnetsessionkey, aspnetsessionValue);
& && && && && && && && &//方法参数
& && && && && && && && &method.setEntity(entity);
& && && && && && && && &HttpResponse result = httpclient.execute(method);
& && && && && && && && &// 请求发送成功,并得到响应
& && && && && && && && &if (result.getStatusLine().getStatusCode() == 200) {
& && && && && && && && && && &&&System.out.println(&请求成功&);
& && && && && && && && && && &&&String str = &&;
& && && && && && && && && && &&&// 读取服务器返回过来的json字符串数据
& && && && && && && && && && &&&str = EntityUtils.toString(result.getEntity());
& && && && && && && && && && &&&System.out.println(str);
& && && && && && && && && && &&&// 成功的字符串类似
& && && && && && && && && && &&&// {&Result&:{&ResponseStatus&:{&IsSuccess&:true},&Id&:100040,&Number&:&CGRK00016&}}
& && && && && && && && && && &&&// 失败 的字符串类似
& && && && && && && && && && &&&// {&Result&:{&ResponseStatus&:{&ErrorCode&:500,&IsSuccess&:false,&Errors&:[{&FieldName&:&FStockId&,&Message&:&单据体“明细信息”第1行字段“仓库”是必填项&},{&FieldName&:&AbstractInteractionResult&,&Message&:&AbstractInteractionResult.InteractionContext is null&}]},&Id&:&&}}
& && && && && && && && && && &&&
& && && && && && && && && && &&&// 把json字符串转换成json对象,方便操作
& && && && && && && && && && &&&jsonResult = JSONObject.fromObject(str);
& && && && && && && && &}
& && && && && & } catch (Exception e) {
& && && && && && && && &System.out.println(&post请求提交失败:& + e);
& && && && && & }
& && && && && & /********** 保存采购入库单End************************/
& && &&&}
}复制代码
16:33 上传
下载次数: 80
2.08 MB, 下载次数: 80
&绝世好贴!: 5 &
&只看不说!: 5 &
String Save_URL = &http://127.0.0.1/K3Cloud/RD.K3.JJ.Business.PlugIn.CustomBusinessService.ListDe ...
你的这个实现万能接口的组件有没有放到服务器站点目录下面,并且重启iis?
杰出会员奖励
杰出会员奖励
十二生肖之龙
十二生肖之龙
金蝶版权所有
Kingdee Software (China) Inc. All Rights Reserved 粤ICP备号-18您现在的位置:&&>>&&>>&&>>&&>>&正文
java开发webservice的几种方式
  webservice的应用已经越来越广泛了,下面介绍几种在体系中开发webservice的方式,相当于做个记录。
  1.Axis2
  Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。
  (1)eclipse的 EE版本
  (2)axis2
  (3)eclipse的axis2插件
  Axis2_Codegen_Wizard
  Axis2_Service_Archiver
  推荐使用1.3的版本
  (4)eclipse安装axis2插件
  1)在任意目录下新建一个Axis2文件夹,在该文件夹下新建eclipse目录,在eclipse目录中新建plugins目录和&&& features目录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;
  2)把下载的axis2插件解压,并把解压的文件放到新建的eclipse的plugins目录下;
  3)在?lipse_home%的目录下新建links目录,并在links目录下新建axis2.link文件,内容为:&&& path=D:\programSoftware\eclipse-SVN\Axis2;
  4)重启eclipse,点击?file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。
  (5)安装axis2
  下载Axis2的WAR Distribution并解压,把axis2.war包放置到%TOMCAT_HOME%/webapps下,启动tomcat,访问localhost:port/axis2,Axis2安装成功。
  (6)使用eclipse新建web工程,创建一个普通java类,至少包含一个方法。
  (7)发布webservice
  1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;
  2)选择Class File Location,也就是类文件存放路径,注意:只选到classes目录,不要包括包文件夹,然后&&& Next;
  3)选择Skip WSDL,然后Next
  4)一路Next到Select the Service XML file to be included in the Service archive,勾选Generate the&&&& service xml automatically;
  5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击&&& Finish,这时webservice就发布成功了;
  6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;
  7)访问localhost:8085/axis2/services/类名?wsdl 就可看到生成的wsdl文件了。
  注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件copy到你的实际应用中,同时,你也可以使用eclipse的create webservice功能发布你的webservice,选择axis2生成你的webservice,这样webservice就会部署到你的应用中了。
  2.Apche CXF
  CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。举一个CXF开发webservice的例子吧。
  1)在eclipse中新建一个web工程,导入依赖包,如图:
  2)编写一个接口,如:
  public String test(@WebParam(name="value", targetNamespace = "service.cxf.zcl./", mode = WebParam.Mode.IN)String value);
  注意:CXF开发的webservice,接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。
  3)编写一个实现类,实现接口的方法;
  4)和spring的集成,编写一个bean文件,如:cxf-beans.xml,内容如下:
  Cxf-beans.xml代码
  这个文件比较容易理解,就不解释了。
  5)配置CXFServlet
  在web.xml文件中配置CXFServlet,加载cxf-beans.xml文件,内容如下:
  Web.xml代码
  把工程部署到中间件,如tomcat,就可以访问该webservice了。
  3.JDK开发webservice(jdk自带的jaxws)
  1)编写一个Java类,如下:
  Jdkwebservice.java代码
  package demo;
  import javax.jws.WebParam;
  import javax.jws.WebService;
  import javax.xml.ws.Endpoint;
  @WebService
  public class JdkWebService {
  public String doSomething(@WebParam(name="value", targetNamespace = "demo/", mode = WebParam.Mode.IN)String value) {
  return "Just do it," + value + "!";
  public static void main(String[] args) {
  Endpoint.publish("localhost:8080/jdkwsdemo/demo.JdkWebService", new JdkWebService());
  2)运行该java类,在浏览器上就可以访问该webservice了。
  注意:开发web工程的时候,这种方法不太友好。我们可以编写一个servlet类,在servlet类的初始化方法中发布webservice,这样我们的中间件启动的时候就会帮我们自动webservice了。
【责编:ivy】
?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]?&[]
相关产品和培训
 友情推荐链接
 认证培训
 专题推荐
 ? ? ? ? ? ? ? ? ? ?
 今日更新
?&?&?&?&?&?&?&?&?&?&
 社区讨论
 博客论点
 频道精选
 Java 频道导航<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 app调用javaweb接口 的文章

 

随机推荐