Java工作笔记-发送SOAP协议请求

这里搭建WebService采用JDKService那种最简单的方式,在此博文中不再说明。

以前说过,调用javaw的API封包是这样的:

这里模拟下。

客户端结构如下:

源码如下:

Main2.java

package webservice.client;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class Main2 {

    public static void main(String[] args) throws IOException {

        URL url = new URL("http://localhost:9998/weatherService?wsdl");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");

        //打开通信
        connection.setDoInput(true);
        connection.setDoOutput(true);

        //拼接符合协议需求的数据格式
        String info = buildXML("南京");
        connection.getOutputStream().write(info.getBytes());

        int responseCode = connection.getResponseCode();

        if(responseCode == 200){

            //正常
            InputStream inputStream = connection.getInputStream();
            Scanner sc = new Scanner(inputStream);
            while(sc.hasNext()){

                System.out.println(sc.nextLine());
            }
            sc.close();
        }
        else{

            System.out.println(responseCode);
        }
        System.out.println("over");
    }

    private static String buildXML(String cityName){

        String str = "<?xml version=\"1.0\" ?><S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Body><ns2:query xmlns:ns2=\"http://webservice/\"><arg0>";
        str += cityName;
        str += "</arg0></ns2:query></S:Body></S:Envelope>";

        return str;
    }
}

 

©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值