当前位置: 首页 > news >正文

住房与城乡建设部网站建造师外贸营销推广的手段

住房与城乡建设部网站建造师,外贸营销推广的手段,中国十大网络公司排名,仿网站 涉及侵权吗webservice中采用协议Http#xff0c;是指什么意思 WebService使用的是 SOAP (Simple Object Access Protocol)协议 Soap协议只是用来封装消息用的。封装后的消息你可以通过各种已有的协议来传输#xff0c;比如http,tcp/ip,smtp,等等#xff0c;你甚至还一次用自定义的协议…webservice中采用协议Http是指什么意思 WebService使用的是 SOAP (Simple Object Access Protocol)协议 Soap协议只是用来封装消息用的。封装后的消息你可以通过各种已有的协议来传输比如http,tcp/ip,smtp,等等你甚至还一次用自定义的协议当然也可以用https协议。 Soap建立在http上说白了是用http传送xml而已。 SOAP协议 HTTP协议 XML数据格式SOAP协议是基于HTTP协议的两者的关系就好比高速公路是基于普通公路改造的在一条公路上加上隔离栏后就成了高速公路。 WebService采用HTTP协议传输数据采用XML格式封装数据即XML中说明调用远程服务对象的哪个方法传递的参数是什么以及服务对象的返回结果是什么。WebService通过HTTP协议发送请求和接收结果时发送的请求内容和结果内容都采用XML格式封装并增加了一些特定的HTTP消息头以说明HTTP消息的内容格式这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象访问协议) 。 商店的服务员只要收到了钱就给客户提供货物商店服务员不用关心客户是什么性质的人客户也不用关心商店服务员是什么性质的人。同样WebService客户端只要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebService服务器WebService服务器再通过HTTP协议返回遵循某种格式的XML结果数据就可以了WebService客户端与服务器端不用关心对方使用的是什么编程语言。 原生底层webService的调用方式 1、在服务器上通过 curl 地址 命令来获取xml文件格式。 2、获取到格式后在服务器上通过curl的完整命令进行测试返参等。 curl --location --request POST 地址 \ --header Content-Type: text/xml \ --data soapenv:Envelope xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:xsdhttp://www.w3.org/2001/XMLSchema xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:hjbhttp://localhost:8080/hjbjWebServicesoapenv:Header/soapenv:Bodyxxx:xxxxxx soapenv:encodingStylehttp://schemas.xmlsoap.org/soap/encoding/in0 xsi:typexsd:string入参/in0/xxx:xxxxxx/soapenv:Body /soapenv:Envelope3、解析xml访问三方服务 package com.ylz.bjyf.ggfw.apps.proxy.handler.ws;import com.alibaba.fastjson.JSONObject; import com.ylz.bjyf.ggfw.apps.proxy.exception.FailException; import com.ylz.bjyf.ggfw.apps.proxy.exception.ProxyException; import com.ylz.bjyf.ggfw.apps.proxy.handler.HttpHandler; import com.ylz.bjyf.ggfw.apps.proxy.handler.ProxyHandler; import com.ylz.bjyf.ggfw.apps.proxy.util.HttpUtils; import com.ylz.bjyf.ggfw.apps.service.entity.YwztProxy; import com.ylz.bjyf.ggfw.common.util.XmlUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringEscapeUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.util.StringUtils; import org.springframework.web.client.RestClientException;import java.util.List; import java.util.Map;Slf4j Component(proxy.wsHttp) public class wsHttpHandler extends ProxyHandler {Autowiredprivate HttpUtils httpUtils;Overrideprotected MultiValueMapString, Object encodeParam(String serialno, JSONObject config, MultiValueMapString, Object param) throws FailException, ProxyException {//config传参中传入xml模板String[] keyList config.getString(keyList).split(,);//获取模板xmlString xml config.getString(xml);//替换方法名if (config.containsKey(func)) {xml.replace({{func}}, config.getString(func));}//替换命名空间if (config.containsKey(namespace)) {xml.replace({{namespace}}, config.getString(namespace));}//替换参数for (int i 0; i keyList.length; i) {String key keyList[i];if (param.get(key).size() 0 param.get(key).get(0) ! null) {xml xml.replace({{ key }}, param.get(key).get(0).toString());} else {xml xml.replace({{ key }}, );}}MultiValueMapString, Object paramMapPage new LinkedMultiValueMap();paramMapPage.add(data, xml);return paramMapPage;}Overrideprotected String excute(YwztProxy proxy, JSONObject config, MultiValueMapString, Object param) throws ProxyException, FailException {//构造http请求头HttpHeaders headers new HttpHeaders();MediaType type MediaType.parseMediaType(text/xml;charsetUTF-8);headers.setContentType(type);if (config.containsKey(HttpHandler.HEADER_STR) !StringUtils.isEmpty(config.get(HttpHandler.HEADER_STR))) {JSONObject headerParams config.getJSONObject(HttpHandler.HEADER_STR);for (Map.Entry k : headerParams.entrySet()) {headers.set(k.getKey().toString(), k.getValue().toString());}}HttpEntityString formEntity new HttpEntity(param.get(data).get(0).toString(), headers);String resultStr null;try {resultStr httpUtils.postForString(proxy.getUrl(), HttpMethod.POST, formEntity);} catch (RestClientException e) {log.error(ProxyException.DEFAULT_MESSAGE, e);throw new FailException(调用接口异常 e.getMessage());}if (resultStr null) {throw new FailException(调用接口失败);}return resultStr;}Overrideprotected String decodeResult(String serialno, JSONObject config, String resultString) {resultString StringEscapeUtils.unescapeXml(resultString);if (config.containsKey(resultTag)) {return XmlUtils.getTextForElement(resultString, config.getString(resultTag));} else if (config.containsKey(delText)) {return resultString.replace(config.getString(delText), );}return resultString;} }xml模板 {resultTag: hjbjcxResponse,keyList: json,xml: soapenv:Envelope xmlns:xsi\http://www.w3.org/2001/XMLSchema-instance\ xmlns:xsd\http://www.w3.org/2001/XMLSchema\ xmlns:soapenv\http://schemas.xmlsoap.org/soap/envelope/\ xmlns:hjb\xxxxxxxx\soapenv:Header/soapenv:Bodyxxx:xxxxxx soapenv:encodingStyle\http://schemas.xmlsoap.org/soap/encoding/\in0 xsi:type\xsd:string\{{json}}/in0/xxx:xxxxxx/soapenv:Body/soapenv:Envelope }http调用 package com.ylz.bjyf.ggfw.apps.proxy.util;import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.ylz.bjyf.ggfw.apps.proxy.exception.FailException; import com.ylz.bjyf.ggfw.apps.proxy.exception.ProxyException; import io.vertx.core.json.JsonObject; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate;import java.util.List;Slf4j Service public class HttpUtils {AutowiredRestTemplate restTemplate;public String postForString(String url, HttpMethod method, HttpEntity? requestEntity) throws FailException, ProxyException {try {if (HttpMethod.GET.equals(method)) {return getForString(url, method, requestEntity);}ResponseEntityString result restTemplate.exchange(url, method, requestEntity, String.class);if (HttpStatus.OK.equals(result.getStatusCode())) {return result.getBody();} else {throw new FailException(http调用失败:, result.getBody());}} catch (RestClientException e) {throw new ProxyException(e);}}public String getForString(String url, HttpMethod method, HttpEntity? requestEntity) throws FailException, ProxyException {try {MapString, Object map null;if (requestEntity.getBody() ! null) {if (requestEntity.getBody().toString().startsWith({) requestEntity.getBody().toString().endsWith(})) {try {map JSONObject.parseObject(requestEntity.getBody().toString());for (Map.EntryString, Object entry : map.entrySet()) {url url_expand(url, entry.getKey(), entry.getValue().toString());}} catch (JSONException e) {log.error(解析json失败, e);}}}log.info(get请求最终URLurl);HttpHeaders headers requestEntity.getHeaders();HttpHeaders headers2 new HttpHeaders();if (headers ! null) {for (Map.EntryString, ListString entry : headers.entrySet()) {if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(entry.getKey())) {headers2.add(entry.getKey(), entry.getValue().get(0));}}}HttpEntityObject formEntity new HttpEntity(null, headers2);log.info(get请求最终头formEntity.getHeaders().toString());ResponseEntityString result restTemplate.exchange(url, method, formEntity, String.class);if (HttpStatus.OK.equals(result.getStatusCode())) {return result.getBody();} else {throw new FailException(http调用失败:, result.getBody());}} catch (RestClientException e) {throw new ProxyException(e);}}private static final String url_expand(String url, String key, String value) {if (StringUtils.isEmpty(url) || StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {return url;}if (url.contains(?)) {url key value;} else {url ? key value;}return url;} }
http://www.laogonggong.com/news/140098.html

相关文章:

  • 如何修改网站title把网站提交给百度
  • 企业网站用户群北京优化排名技术
  • 成华区微信网站建设公抚顺市建设银行网站
  • 网站开发怎么收客户费wordpress 旅行社模版
  • 企业员工培训总结东莞市网络seo推广平台
  • 食品 技术支持 东莞网站建设如何保护自己的网站
  • 网站备案的时间可以做自媒体的网站
  • 网站建设合同模版kloxo网站压缩
  • 网站建设 可行性天河低价网站建设
  • 南宁网站开发培训绵阳的网站建设公司
  • 为什么要做营销型网站企业安全文化实现的途径
  • 强大的网站设计制作深圳福田区房子价格
  • 域名注册空间网站优秀网站设计模板
  • 杭州个人做网站专业做全景图的网站平台
  • 品牌高端网站制作机构wordpress插件 图片上传
  • 民治营销网站做网站有什么专业术语
  • 襄阳旅游景点网站建设杭州公司网站建设电话
  • 免费创建网站平台门业网站模板下载
  • 免费php开源建站系统成都集和品牌设计公司
  • 汽车保险网站北京公司网站建设定制
  • 东莞网站建设推广网站建设程序
  • 陕西咸阳做网站的公司网站建设与管理名词解释
  • 东莞建设质监网站网络营销推广系统排名推荐系统
  • 网站备案必须做前置审批吗假链接制作网站
  • 做热图的在线网站一级a做爰片免费网站性恔
  • 阿里巴巴企业网站建设心悦免做卡领取网站
  • 考证培训机构报名网站网站开发的相关语言有哪些
  • 西安seo站内优化重庆市工程建设造价信息网官网
  • 信息网站开发网络公司广东建设网 四川是什么网站
  • 网站管理系统 免费化妆品网站程序