GVKun编程网logo

excel webservice http标头(excel调用webservice)

9

在这篇文章中,我们将为您详细介绍excelwebservicehttp标头的内容,并且讨论关于excel调用webservice的相关问题。此外,我们还会涉及一些关于axis2实现webservice

在这篇文章中,我们将为您详细介绍excel webservice http标头的内容,并且讨论关于excel调用webservice的相关问题。此外,我们还会涉及一些关于axis2实现webservice之使用services.xml文件发布WebService、c# 调用 https WebService、c# 调用https WebService、cxf webservice 调用 https的知识,以帮助您更全面地了解这个主题。

本文目录一览:

excel webservice http标头(excel调用webservice)

excel webservice http标头(excel调用webservice)

如何解决excel webservice http标头?

我想知道是否有办法在 excel WEBSERVICE 函数中包含 http 标头。 我正在尝试使用需要授权的 API 女巫:Bearer ACCESS_TOKEN :

curl -X GET --header ''Accept: application/json'' --header ''Authorization: Bearer  ac004670-8f66-340a-b4d0-312b585d8cb3'' ''https://api.insee.fr/Metadonnees/V1/codes/nafr2/sousClasse/84.11Z''

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

axis2实现webservice之使用services.xml文件发布WebService

axis2实现webservice之使用services.xml文件发布WebService

       还是对教程的延伸,本来是周五要写的,但是耽搁了一下,就拖到周一了。

      Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中。这似乎有些不方便,为此,Axis2也允许将带包的POJO类发布成Web Service
   
先实现一个POJO类,代码如下: 

package service; public class MyService { public String getGreeting(String name) { return "您好 " + name; } public void update(String data) { System.out.println("<" + data + ">已经更新"); } }

这个类有两个方法,这两个方法都需要发布成Web Service方法。这种方式和直接放在pojo目录中的POJO类不同。要想将MyService类发布成Web Service,需要一个services.xml文件,这个文件需要放在meta-inf目录中,该文件的内容如下:

<service name="myService"> <description> Web Service例子 </description> <parameter name="ServiceClass"> service.MyService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"https://www.jb51.cc/tag/cme/" target="_blank">cmessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"/> </messageReceivers> </service>

其中<service>元素用于发布Web Service,一个<service>元素只能发布一个WebService类,name属性表示WebService名,如下面的URL可以获得这个WebServiceWSDL内容:

http://localhost:8080/axis2/services/myService?wsdl (这个得等到.aar文件出来之后)

其中name属性名就是上面URL"?""/"之间的部分。

<description>元素表示当前Web Service的描述,<parameter>元素用于设置WebService的参数,在这里用于设置WebService对应的类名。在这里最值得注意的是<messageReceivers>元素,该元素用于设置处理WebService方法的处理器。例如,getGreeting方法有一个返回值,因此,需要使用可处理输入输出的RPcmessageReceiver类,而update方法没有返回值,因此,需要使用只能处理输入的RPCInOnlyMessageReceiver类。

使用这种方式发布WebService,必须打包成.aar文件,..aar文件实际上就是改变了扩展名的.jar文件。在现在建立了两个文件(这两个文件夹任意):MyService.javaservices.xml。将MyService.java编译,生成MyService.classservices.xmlMyService.class文件的位置如下:

D:\ws\service\MyService.class

D:\ws\meta-inf\services.xml

   
 windows控制台中进入ws目录,并输入如下的命令生成.aar文件(实际上,.jar文件也可以发布webservice,但axis2官方文档中建议使用.aar文件发布webservice):

jar cvf ws.aar .    jar cvf AxisTest.aar .

    如下是我测试的过程

        原来发现不管要.aar,之后还需要一个“.”,即.arr.,但是最坑爹的就是这里了,加了“.”之后还是不对啊,最后的问题居然是这个后面的点要空一格,不能紧挨着.arr


      如下成功之后的文件夹情况


    最后将ws.aar文件复制到<Tomcat安装目录>\webapps\axis2\WEB-INF\services目录中,启动Tomcat后,就可以调用这个WebService了。

      已经显示webservice发布成功了,接下来就是编写客户端进行调运了,跟前面一样,也需要wsdl2java命令去生成stub类,过程我就不多说了,之前的博客里有

如下是调用客户端的代码

package service; import org.apache.axis2.AxisFault; public class MyServiceStubClient { public static void main(String[] args) { // Todo Auto-generated method stub try { MyServiceStub mss = new MyServiceStub(); MyServiceStub.GetGreeting gg = new MyServiceStub.GetGreeting(); MyServiceStub.Update up = new MyServiceStub.Update(); gg.setName("美女"); up.setData("帅哥"); try { mss.update(up); System.out.println("美女"+mss.getGreeting(gg).get_return()); } catch (Exception e) { // Todo Auto-generated catch block e.printstacktrace(); System.out.println("发生异常"); } } catch (AxisFault e) { // Todo Auto-generated catch block e.printstacktrace(); } } }


运行结果

由于“帅哥”是在服务器端打印的,所以客户端是看不到的。

在打包arr文件的时候,发现有一个build.xml文件,这个是ant脚本中的知识,在本题中暂时不涉及,以后再介绍。

 

如果想发布多个WebService,可以使用<serviceGroup>元素,如再建立一个MyService1类,代码如下:

package service public class MyService1 { public String getName() { return "bill"; } }


services.xml文件中可以使用如下的配置代码来配置MyServiceMyService1类:

<serviceGroup> <service name="myService"> <description> Web Service例子 </description> <parameter name="ServiceClass"> service.MyService </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"https://www.jb51.cc/tag/cme/" target="_blank">cmessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"/> </messageReceivers> </service> <service name="myService1"> <description> Web Service例子 </description> <parameter name="ServiceClass"> service.MyService1 </parameter> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"https://www.jb51.cc/tag/cme/" target="_blank">cmessageReceiver" /> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"/> </messageReceivers> </service> </serviceGroup>

c# 调用 https WebService

c# 调用 https WebService

void Main(String[] arges){

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

var ws = new WebServices();

var xmlData = ws.Invoke();

Console.WriteLine(xmlData);

}

 

/// <summary>

    ///webService 服务 https 调用使用

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="certificate"></param>

    /// <param name="chain"></param>

    /// <param name="errors"></param>

    /// <returns></returns>

    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

    {

        return true;

    }

c# 调用https WebService

c# 调用https WebService

void Main(String[] arges){

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);

var ws = new WebServices();

var xmlData = ws.Invoke();

Console.WriteLine(xmlData);

}

 

/// <summary>

    /// webService服务https调用使用

    /// </summary>

    /// <param name="sender"></param>

    /// <param name="certificate"></param>

    /// <param name="chain"></param>

    /// <param name="errors"></param>

    /// <returns></returns>

    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)

    {

        return true;

    }

cxf webservice 调用 https

cxf webservice 调用 https

参考:http://michael-huaping.iteye.com/blog/1631305

模拟了一下。

单项认证:就是服务端是https的,需要认证。但是客户端不用认证。就是单项认证。

流程就是服务器生成keystore文件,和证书文件,并使用证书文件和keystore文件,生成给客户端用的client.truststore 文件。

坑1:生成的cn 不能乱写,如果随便填写一个a。然后客户端用ip去调用时。会提示 “”No subject alternative names present“” 异常,cn 需要填写webservice地址对应ip(正式环境可能是域名什么的)

坑2:我是用tomcat测试的,注意到配置文件clientAuth ,true貌似是表示强制双向认证,如果是单项认证,这里写false。我这里是写false。


双向认证,参考文章即可,没实际测试

另外有人说eclipse里生成可以,不知道是不是。先不管了。在Eclipse中右键该wsdl文件,web service-->Generate Client生成客户端

http://www.cnblogs.com/liaojie970/p/4921575.html


其他参考:http://www.cnblogs.com/cuimiemie/p/6442685.html

转换java keytools的keystore证书到OPENSSL的PEM格式文件

http://www.cnblogs.com/interdrp/p/4880891.html

关于excel webservice http标头excel调用webservice的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于axis2实现webservice之使用services.xml文件发布WebService、c# 调用 https WebService、c# 调用https WebService、cxf webservice 调用 https的相关信息,请在本站寻找。

本文标签: