httpClient soap post

来源:互联网 发布:js 控制div移动 编辑:程序博客网 时间:2024/05/18 00:32
public class AbstractServiceImpl implements BaseService{    public  String namespace;    public  String methodName;    public  String wsdlLocation;    public String soapResponseData;@Overridepublic int invoke(Map<String, String> patameterMap) throws Exception {// TODO Auto-generated method stubPostMethod postMethod = new PostMethod(wsdlLocation);        String soapRequestData = buildRequestData(patameterMap);        byte[] bytes = soapRequestData.getBytes("utf-8");        InputStream inputStream = new ByteArrayInputStream(bytes, 0,                bytes.length);        //postMethod.setHeader("Content-type", " text/xml; charset=utf-8");       RequestEntity requestEntity = new InputStreamRequestEntity(inputStream,                bytes.length, "text/xml; charset=utf-8");        postMethod.setRequestEntity(requestEntity);        HttpClient httpClient = new HttpClient();        int statusCode = httpClient.executeMethod(postMethod);        BufferedReader reader = new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream()));          StringBuffer stringBuffer = new StringBuffer();          String str = "";          while((str = reader.readLine())!=null){              stringBuffer.append(str);          }          soapResponseData = stringBuffer.toString();         //soapResponseData = postMethod.getResponseBodyAsString();        return statusCode;}@Overridepublic String buildRequestData(Map<String, String> patameterMap) {// TODO Auto-generated method stub//String str=this.makeSoapRequestXml(namespace,methodName);    StringBuffer soapRequestData = new StringBuffer();    soapRequestData.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");     soapRequestData.append("<v:Envelope xmlns:v=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:n0=\"").append(this.namespace).append("\"><v:Header /><v:Body><n0:").append(this.methodName).append(">");                Set<String> nameSet = patameterMap.keySet();        for (String name : nameSet) {            soapRequestData.append("<" + name + ">" + patameterMap.get(name)                    + "</" + name + ">");        }                soapRequestData.append("</n0:").append(this.methodName).append("></v:Body></v:Envelope>");        return soapRequestData.toString();   }@Overridepublic int sendMessage(String... args) throws Exception {// TODO Auto-generated method stub Map<String, String> patameterMap = new HashMap<String, String>(); for(int i=0;i<args.length;i++){  patameterMap.put("arg"+i, args[i]); }               int statusCode = this.invoke(patameterMap);        return statusCode;}}

0 0
原创粉丝点击