精华内容
下载资源
问答
  • 金税接口调用实例

    热门讨论 2013-07-03 14:32:09
    金税接口调用实例,c#开发,Interop.TaxCardX.dll
  • Webservice接口调用

    万次阅读 2019-03-09 16:07:58
    web service分两大类架构一种是基于soap协议的(wsdl结尾的接口),另外一种就是基于restful思想的,由于...1.先来看soap风格的webservice接口调用的步骤。 直接点击SOAP按钮–图里画出来了,弹出new soap proje...

    web service分两大类架构一种是基于soap协议的(wsdl结尾的接口),另外一种就是基于restful思想的,由于restful api接口(http地址的接口,但是请求报文为xml/json)的设计思想,后者国外商业应用更多。例如谷歌推特提供的api接口。

    1.先来看soap风格的webservice接口调用的步骤。

    直接点击SOAP按钮–图里画出来了,弹出new soap project的对话框。在Initial WSDL中浏览webservice接口服务端生成的wsdl文件。ProjectName可以自定义,软件也会自动在你浏览了wsdl文件后填上内容。点击ok.
    在这里插入图片描述在这里插入图片描述
    进入设置入参的界面。还是自动生成的入参报文,只需要输入入参,点击绿三角运行,就完成了接口调用。在右侧现实出回参XML
    在这里插入图片描述
    2.再来看rest风格调用webservice接口的步骤
    同soap新建一样,这里点击rest,new rest project,这里的URI就是服务方提供的接口地址。点击ok
    在这里插入图片描述
    接口地址会被自动拆分成三部分,其中parameters是空。通过选择请求的方式-Method,已经选择参数的类型Media Type设置入参类型和入参的内容。如图示。都设置好,并输入了入参信息,点击绿三角,调用接口。可在右侧看到返回值。返回值也是有几种:xml,json,Html等。
    在这里插入图片描述
    总结区别:

    1.soap风格依赖与wsdl这个接口服务描述文件,通过这个wsdl文件,可以把暴露的接口中的所有方法显示出来,然后在列表中选择你要调用的方法,输入参数就可以了,相当于由wsdl只能定位到接口/类上面,具体不到那个方法。而rest风格的URI方式直接定位到方法。

    2.soap风格没有设置请求方式是get,post,还是delete,put。因为soap默认为post请求。而rest是可以自己设定请求类型的。

    3.soap风格参数底层传输固定是出入参固定是xml格式的。没有json等其他形式的参数格式。rest风格的出入参数的数据类型可以是xml,json等常用格式,入参没有底层生成的任何东西,全部自己搞定,xml还是json格式,要严格符合选中的数据类型才行。

    展开全文
  • 六、服务接口调用OpenFeign

    万次阅读 2020-04-16 14:35:06
    服务接口调用框架openFeign的使用

    一、Feign 和 OpenFeign 的简介

    Feign是一个声明式WebService客户端。 使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign也支持可拔插式的编码器和解码器。Spring CloudFeign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConvertersFeign可以与EurekaRibbon组合 使用以支持负载均衡。

    Feign集成了Ribbon,利用Ribbon维护了服务列表信息, 并且通过轮询实现了客户端的负载均衡。 而与Ribbon不同的是, 通过Feign只服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用

    OpenFeign实在Feign的基础上支持了SpringMVC的注解。

    OpenFeign@FeignClient可以解析SpringMVC@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

    二、OpenFeign 的使用

    2.1 基本使用

    引入依赖:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    

    主启动类上添加@EnableFeignClients

    新建Feign接口:

    @FeignClient("cloud-payment-service")
    public interface PaymentFeignService {
        @GetMapping("/payment/{id}")
        CommonResult get(@PathVariable("id") Long id);
    
        @PostMapping("/payment")
        CommonResult insert(@RequestBody Payment payment);
    }
    

    Controller层注入PaymentFeignService调用方法即可实现远程调用。

    2.2 超时设置

    默认Feign客户端只等待1秒钟,但是服务端处理需要超过1秒钟,导致返回报错。为了避免这样的情况,我们需要设置Feign客户端的超时控制,修改配置文件:

    #设置feign客户端超时时间(OpenFeign默认支持ribbon)
    ribbon:
      #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的实际
      ReadTimeout: 5000
      #指的是建立连接后从服务器读取到可用资源所用的时间
      ConnectTimeout: 5000
    

    2.3 日志打印

    OpenFeign提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解FeignHttp请求的细节,说白了就是对Feign接口调用情况进行监控和输出。

    OpenFeign设定日志级别:

    日志级别介绍
    NONE默认的,不显示任何日志
    BASIC仅记录请求方法、URL、 响应状态码及执行时间
    HEADERS除了BASIC中定义的信息之外,还有请求和响应的头信息
    FULL除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据

    配置日志bean

    @Configuration
    public class FeignConfig {
        @Bean
        Logger.Level feignLoggerLevel(){
            return Logger.Level.FULL;
        }
    }
    

    YML文件里需要开启日志的Feign客户端

    logging:
      level:
        #feign日志以什么级别监控那个接口
        com.hucheng.service.PaymentFeignService: debug
    

    调用服务,控制台有访问记录输出:
    控制访问输出

    2.4 注意事项

    使用Feign的时候,如果参数中带有@PathVariable@RequestParam形式的参数,则要用value=""标明对应的参数,否则会抛出IllegalStateException异常。

    三、Feign调用存在的问题

    3.1 feign 远程调用丢失请求头

    在这里插入图片描述
    feign拦截器

    @Bean("requestInterceptor")
    public RequestInterceptor requestInterceptor() {
        return requestTemplate -> {
            //RequestContextHolder拿到feign调用前请求
            ServletRequestAttributes requestAttributes =
                    (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            if (requestAttributes != null) {
                HttpServletRequest request = requestAttributes.getRequest();
                if (request != null) {
                    //同步请求头数据
                    requestTemplate.header("Cookie", request.getHeader("Cookie"));
                }
            }
        };
    }
    

    在这里插入图片描述

    3.2 Feign异步情况丢失上下文问题

    由于feign请求拦截器为新的request设置请求头底层是使用ThreadLocal保存刚进来的请求,所以在异步情况下,其他线程并不能获取到主线程的ThreadLocal,所以也拿不到请求。

    解决:先获取主线程的ThreadLocal保存的请求数据,再分别向其他线程中设置

    RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
    CompletableFuture.runAsync(() ->{
       RequestContextHolder.setRequestAttributes(requestAttributes);
    });
    
    展开全文
  • 写了个拦截器,每调用一个接口,开启一个新的线程计数+1。因为计数与系统逻辑是分开的,所以...现在代码如下:publicclassModuleStatisticsInterceptorimplementsInterceptor{/***统计接口调用次数*/@Overridepubli...

    写了个拦截器,每调用一个接口,开启一个新的线程计数+1。因为计数与系统逻辑是分开的,所以放在另外一个线程里。

    但是这样是否会带来负载过高?有没有什么好的解决办法?按照key-value周期性的存储吗?

    现在代码如下:public class ModuleStatisticsInterceptor implements Interceptor {

    /**

    * 统计接口调用次数

    */

    @Override

    public void intercept(Invocation inv) {

    String controllerPath = inv.getControllerKey();

    APICallCount(controllerPath.substring(1, controllerPath.length()), inv.getMethodName());

    inv.invoke();

    }

    /**

    * 统计接口调用次数(另外的线程中执行)

    * @param className controller类名

    * @param methodName controller中的方法名

    */

    public static void APICallCount(String className, String methodName) {

    new Thread(new Runnable() {

    public void run() {

    try {

    Record record = Db.findFirst("SELECT controllerName FROM module_statistics WHERE controllerName = ? AND methodName = ?", className, methodName);

    if(record == null) {

    Db.update("INSERT INTO module_statistics(controllerName, methodName, count, state) values(?,?, 0, 1)", className, methodName);

    }

    Db.update("UPDATE module_statistics SET count = count + 1 WHERE controllerName = ? AND methodName = ? LIMIT 1", className, methodName);

    } catch (Exception ex) {

    LogKit.error("统计出错:" + className + "/" + methodName);

    }

    }

    }).start();

    }

    }

    展开全文
  • WebService接口调用

    千次阅读 2017-11-02 10:40:01
    最近项目中有朋友咨询我webService接口的调用,在这里...一、webService接口调用工具类 public class WebService { private WebService() { throw new IllegalAccessError("CallWebServiceInterface class"); }

    最近项目中有朋友咨询我webService接口的调用,在这里总结并分享一下,我对webService方法的调用。


    一、webService接口调用工具类

    public class WebService {
    	private WebService() {
    		throw new IllegalAccessError("CallWebServiceInterface class");
    	}
    
    	public static <E> E getWebServiceClient(String url, Class<E> clazz, int connectionTimeout, int receiveTimeout) {
    		JaxWsProxyFactoryBean proxy = new JaxWsProxyFactoryBean();
    		proxy.setServiceClass(clazz);
    		proxy.setAddress(url);
    		@SuppressWarnings("unchecked")
    		E client = (E) proxy.create();
    		// 配置超时时间
    		Client clientProxy = ClientProxy.getClient(client);
    		HTTPConduit conduit = (HTTPConduit) clientProxy.getConduit();
    		HTTPClientPolicy policy = new HTTPClientPolicy();
    		policy.setConnectionTimeout(connectionTimeout); // 连接超时时间
    		policy.setReceiveTimeout(receiveTimeout);// 请求超时时间
    		conduit.setClient(policy);
    		return client;
    	}
    
    	public static <E> E getWebServiceClient(String url, Class<E> clazz) {
    		return getWebServiceClient(url, clazz, 5000, 5000);
    	}
    }


    二、webService服务接口

    @WebService(targetNamespace = "http://biz.cos.interfaces.ccs.sf.com/")
    public interface webServiceTest{
    	
    
    	@WebMethod
    	List<String> queryAddressByPhone(String args);
    
    }

    注意:
    1、webService注解上的targetNamespace是接口提供方的分包地址,获取方式可以直接访问webService接口地址返回的XML文件中获取;
    2、接口中的方法名必须带webMethod注解,并且接口方法必须与提供方的接口一模一样;


    三、WebService接口的调用

    参数详解:
    1、url为接口供应商提供的webService接口地址
    2、args为webService方法需求的参数

    public List<String> queryAddressByPhone(String url , String args) {
    	webServiceTest client = WebService.getWebServiceClient(url, webServiceTest.class);
    	List<String> Result = client.queryAddressByPhone(args);
    	return Result;
    }











    展开全文
  • 携程外部接口调用试例
  • 1.feign的远程调用(http接口调用) 2.RestTemplate 下面参考别的博客我自己的项目来介绍这两种方式~ 1.feign实现springboot/springcloud间的远程HTTP调用 参考博文:springboot feign使用 1.1 pom文件中添加相关...
  • Vue接口调用问题

    千次阅读 2019-05-08 12:02:14
    应公司需求,接口需要对接vue,记录一下碰到的问题 开发环境: 系统:windows10 ... 前端:vue2.x ...一、接口调用 前提是安装了axio main.js中引用 import axios from 'axios' Vue.prototype.$h...
  • C#版微信公众平台接口调用源码打包下载

    千次下载 热门讨论 2013-10-01 11:47:23
    C#版 微信公众平台接口调用源码 打包下载
  • 接口调用失败重试方案

    万次阅读 2018-12-20 10:59:45
    在项目开发中,有时候会出现接口调用失败,本身调用又是异步的,如果是因为一些网络问题请求超时,总想可以重试几次把任务处理掉。 一些RPC框架,比如dubbo都是有重试机制的,但是并不是每一个项目多会使用dubbo...
  • python之API接口调用

    万次阅读 2018-08-06 19:20:01
    首先什么叫API,API全称又叫做Application Programming Interface,简称应用程序接口,第一次接触接口调用的时候,完全不知道写的啥,因为我看的是整个项目,项目是tornado写的,看了半天的tornado,后来才发现方向...
  • Feign远程接口调用

    千次阅读 2018-12-19 17:52:36
    Feign远程接口调用 clouds234@163.com 2018-8-6   以下都是使用在springboot2.0.4内置启动插件基础上   Feign-only 不注册到eureka 单独使用feign远程调用接口,不讲feign注册到注册中时的使用方法;只需要在...
  • react里面的接口调用方法

    千次阅读 2020-11-24 16:00:51
    react接口调用 我们通过npm create-react-app my-app创建react项目,在项目里都是要进行接口调用来获取数据,进行增删改查各种操作的,所以掌握接口调用方式是非常必要的,话不多说进入正题: 想要掌握接口调用的...
  • 调用金蝶EAS系统提供的标准WebService接口或者二次开发提供的接口之前,都需要先调用登录接口。 下载登录接口对应的wsdl文件,生成客户端代码之后,调用实例如下(包路径根据实际情况修改): package ...
  • 接口调用超时

    万次阅读 2018-10-25 15:04:34
    假设A系统有个方法methodA,会调用B系统的methodB这个http接口,如果mehodA不追求超快的响应速度,那么你在调用methodB这个http接口时,可以增长超时时间,例如10秒超时。因为经常在某些时刻,由于网络原因或者系统...
  • 接口调用频次限制说明

    千次阅读 2018-07-13 18:35:56
    接口调用频次限制说明公众号调用接口并不是无限制的。为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码...
  • Jmeter之Java接口调用

    千次阅读 2018-08-21 09:18:18
    或者需要对Java接口服务进行性能测试时,需要用到jmeter进行Java接口调用。以下简单介绍下jmeter通过Java请求和Bean shell方式来实现Java接口调用的具体使用方法。   一、jmeter中BeanShel...
  • SpringBlade、Saber接口调用笔记

    千次阅读 2019-11-13 19:57:04
    接口调用使用的代理服务器方式 具体步骤: 1.输入接口域名和协议及端口,进行代理: 2.进入API设置接口位置 3.模块层调用 4.查看调用情况 上面的400错不用管,那是因为其他接口没有通 到此接口就调用成功了。 ...
  • Android通过Java接口调用OpenCV2.4示例

    热门讨论 2013-11-24 14:53:13
    Android通过Java接口调用OpenCV2.4示例,将一个图片变成灰度图片。
  • ajax 数据交互 接口调用

    千次阅读 2017-08-12 19:26:37
    ajax 请求 jQuery ajax 请求 ajax post请求 ajax get请求 ajax 接口调用
  • 前端常见的接口调用的方式

    千次阅读 2020-05-02 18:19:43
    接口调用的方式有哪些 原生ajax 基于jQuery的ajax fetch axios Promise
  • 接口调用一会正常,一会失败

    千次阅读 2019-02-18 09:29:58
    刚开始这个问题困扰了我很久,后面才发现接口平台用了两台zookeeper集群来处理我这个接口,但是其中有一个zookeeper集群部分配置已经过期了,经过部分权限的申请并重新开通权限后,我们的接口调用终于恢复正常了!...
  • OpenFeign 接口调用出现400错误

    千次阅读 2020-03-10 14:23:19
    Feign接口调用出现400错误可能有很多种情况,我就来讲一下我的碰到400错误。 400报错原因: Feign消费者调用被消费者接口时传入参数为null,导致400错误。 报错未处理之前: //Feign消费者 @RequestMapping("/...
  • 微信接口调用频次限制说明

    万次阅读 2018-03-27 14:10:25
    接口调用频次限制说明公众号调用接口并不是无限制的。为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码...
  • SDK接口调用主流程

    千次阅读 2019-09-21 00:06:47
    SDK接口调用主流程 (1)开启开发包:初始化SDKNetClient_Startup|NetClient_Startup_V4,包括对整个网络SDK系统的初始化,内存预分配等操作。 (2)注册消息(NetClient_SetMSGHandle)和回调...
  • restTemplate底层是基于HttpURLConnection实现的restful风格的接口调用,类似于webservice,rpc远程调用,但其工作模式更加轻量级,方便于rest请求之间的调用,完成数据之间的交互,在springCloud之中也有一席之地。...
  • web service 接口调用 使用http通讯 URL地址:http://ip:8080/**/WebService/yhConvertData?wsdl 请问这个URL地址这样写对么?不对的话,这个URL地址格式是什么
  • 使用httpclient实现http接口调用实例

    万次阅读 多人点赞 2013-03-05 17:03:26
    使用httpclient实现http接口调用实例 假设服务接口如下: 接口地址: http://192.168.0.1/service/sendsms 请求方式: post 需要传递参数: c= {"uid":"10000","title":"test a title","content":"this is a ...
  • 接口调用处理,http请求405错误

    千次阅读 2020-11-18 16:44:55
    每个接口调用都有自己环境,先排查原因 调查 问题用户反馈,上传文档非常缓慢 查看实时日志如下: 分析日志,发现一个外调接口连接超时。 接口 一直请求超时,:...
  • 简单的接口调用例子

    千次阅读 2018-02-07 16:18:00
    这是一个简单的接口调用例子,可以根据需求自我修改 package com.wx; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,630,359
精华内容 1,052,143
关键字:

接口调用