通过HttpUrlConnection进行webservice请求_weixin_39102174的博客-程序员秘密_httpurlconnection webservice

技术标签: java基础  

webservice一般使用cxf或者axios进行webservice请求,不过有时对方系统请求报文格式组装比较复杂,可以使用HttpUrlConnection方式进行请求:

 public static String soupHttpConnect() throws Exception {
        String wsUrl="wldl地址";
        //可通过字符串拼接等方式组装
        String soapXML="组装的webservice请求格式";
        //第一步:创建服务地址,不是WSDL地址
        URL url = null;
        String result=null;
        try {
            logger.info("===开始===");
            url = new URL(wsUrl);
            //第二步:打开一个通向服务地址的连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            //第三步:设置参数
            //3.1发送方式设置:POST必须大写
            connection.setRequestMethod("POST");
            //3.2设置数据格式:content-type
            connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
            //3.3设置输入输出,因为默认新创建的connection没有读写权限,
            connection.setDoInput(true);
            connection.setDoOutput(true);
            //设置超时时间
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            //第四步:组织SOAP数据,发送请求
            OutputStream os = connection.getOutputStream();
            os.write(soapXML.getBytes());
            //第五步:接收服务端响应,打印
            int responseCode = connection.getResponseCode();
            if(200 == responseCode){//表示服务端响应成功
                InputStream is = connection.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                BufferedReader br = new BufferedReader(isr);

                StringBuilder sb = new StringBuilder();
                String temp = null;
                while(null != (temp = br.readLine())){
                    sb.append(temp);
                }
                System.out.println(sb.toString());
                result=sb.toString();
                is.close();
                isr.close();
                br.close();
                logger.info("===发送成功===");
            }else {
                logger.error("===发送失败,错误码是:"+responseCode);
            }

            os.close();


        } catch (Exception e) {
            logger.error("请求发送出错,错误信息:"+e.getMessage());
            e.printStackTrace();
            e.getStackTrace();
            throw e;
        }

    return result;
    }

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39102174/article/details/102854300

智能推荐

TensorFlow高级API系列(三):Dataset API_Ding_xiaofei的博客-程序员秘密

前言tf.data非常的好用,这里不多说,如果你停留在placeholder,feed_dict,你可能对这篇博客并不感兴趣。如果在处理大规模数据,tf.data就极其好用了。从内存里面读取数据我们先放代码,再慢慢解读import tensorflow as tfimport numpy as npdataset = tf.data.Dataset.from_tensor_slice...

《三种图片的多条目》(代码不是很全只有bean类中的方法,和 适配器 等等)_无名大神123的博客-程序员秘密

Bean类中的方法 package com.example.qiehuan.bean;import java.util.List;public class Bean { private String msg; private int code; private List<DataBean> data; public String g...

java tuscany_Apache Tuscany Java 1.1发布_火星后继者的博客-程序员秘密

【IT168 产品新闻】Apache Tuscany团队刚刚宣布了Java SCA项目1.1版本的发布。Apache Tuscany是一个基于服务组件框架(Service Component Architecture,SCA)的运行时环境。SCA 是一个新的组件模型,它可以用来帮助创建组合应用。SCA的规范最开始是由IBM和BEA制定的,现在由OASIS进行了标准化,成了Open Composit...

如何考核售前?_闲聊PM的博客-程序员秘密_售前考核

售前支持工程师是非常常见的一种岗位。专门对这个岗位进行培训的机构少之又少。似乎不想做销售又不想做技术的人都选择了售前。曾经面试过一位刚毕业没多久的学生,应聘售前支持工程师,对售前岗位十分懵懂,甚至以为售前也是做技术的,毕竟也是“工程师”。其实不然。仔细思考一下,企业为何要设置售前岗?我们为何选择售前岗?每一个岗位都有其发展路线,都有其独特的核心技能要求,售前岗呢?论理解技术,不如开发工程师;论理解产品,不如产品经理;论理解交付过程,不如项目经理;论签单能力,不如销售。售前的岗位支点在

【力扣】[数组] 119.杨辉三角 II_程序员欢欢的博客-程序员秘密

1、题目给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。链接:https://leetcode-cn.com/problems/pascals-triangle-ii/ 2、思路分析1)暴力求解将每行杨辉三角的计算出来,放在数组中,然后将最后一行,写入数组,最后返回。缺点也很明显,就是空间复杂度很大,也是可以避免的。class Solution {public: vector<in

随便推点

Linux动态链接库.so文件的命名及用途总结_passionkk的博客-程序员秘密

转载:https://blog.csdn.net/zhanglianpin/article/details/50491958我们在linux下开发项目,有时会对外提供动态库,像***.so.1.0.0这样子的文件,另外提供相应的头文件。用户拿到动态库和头文件说明,就可以使用动态库里的function。那随之而来的一个问题是,动态库的升级问题,我们的动态库更改了一个bug,升级了一个版本,那使...

新手小白教程之 圈X-QuantumultX 某青极速版自动签到阅读_大熊猫i的博客-程序员秘密_圈x使用教程

自动签到阅读功能今天给大家带来QX的进阶玩法,实现ZQ阅读极速版的自动签到,自动阅读功能。我们今天的功能并不在重写或调试模块进行操作,直接在配置文件进行操作是最快最方便的。下面开始今天的教程。欢迎大家入群交流:106511927第一步下载登录好阅读软件,打开App-我的,帮我填下邀请码助力:51865573,助大家低调的成功撸羊毛XDDDDDDDDDDD;第二步打开Quantumult X,点击小风车,找到配置文件模块-编辑找到 [rewrite_remote]选项卡,将代码连同注释一起粘贴进

Xamarin.Forms 教程1---初识页面布局_RabinRow的博客-程序员秘密

Xamarin.Forms 作为一种跨平台开发利器,可以让.NET程序员们用自己熟悉的C#语言编写Android、IOS、UWP等平台的应用程序,对我们广大.NET开发者真是一个利器,但国内原生教程并不多,我也是找的国外教程在学习,并希望能将所学,翻译成一套Xamarin.Forms的中文教程,同时希望在写的时候,尽量做到深入浅出,与大家共享!水平有限,不当之处,还望指正!页面布局分类P...

Ultravnc,3步教你Ultravnc软件如何注册登录_CH_sir的博客-程序员秘密

UltraVNC既是一个客户端也是一个服务器,可以用TCP/IP连接来控制另一台电脑。它可以在W9x/NT/2K/XP在使用,拥有包括自动设置,友好用户界面,全局热键,内部文件传输等功能。那我们在使用Ultravnc软件时如何注册登录呢?使用软件:IIS7服务器管理工具如图:IIS7服务器管理工具可以实现一键导出或导入,一键批量打开VNC,一键批量关闭VNC,服务器到期提醒,支持多台VNC自定义备注,自定义分组,支持批量操作等功能。对于IIS7服务器管理工具来说,白绿色的界...

post_thumbnail_html,wordpress get_the_post_thumbnail()不显示任何内容_LY11冬季的博客-程序员秘密

我正在创建我的第一个wordpress主题, 无法弄清楚为什么未显示帖子缩略图。它什么都不做(没有错误)。这是我的代码:$args = array( 'posts_per_page' => 3, 'category' => 6);$postslist = get_posts( $args );foreach ( $postslist as $post ) :setup_postdata...

推荐文章

热门文章

相关标签