已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
webservice实现有多种方式比如最常用的有axis框架,xfire框架,通过该框架可以发布wsdl接口,也可以实现webservice客户端,目前eclipse都有集成的插件,可以根据wsdl文件生成webservice客户端调用接口,但是这样部署的时候必须依赖框架的jar包,有时候可能因为环境等等原因,我们仅仅需要wsdl中的某一个接口,这时候可以通过http接口或socket接口直接发生xml数据,来调用服务端webservice服务,其实webservice底层还是发送xml数据,只是框架封装了对xml数据进行序列化与反序列化操作,下面以两个简单的例子说明http方式和socket方式。http实现webservice接口调用例子:c-sharpview plaincopy1. importjava.io.BufferedReader;2. importjava.io.IOException;3. importjava.io.InputStreamReader;4. importjava.io.OutputStreamWriter;5. importjava.io.UnsupportedEncodingException;6. .MalformedURLException;7. .URL;8. .URLConnection;9. 10. publicclassHttpPostTest11. voidtestPost(StringurlStr)12. try13. URLurl=newURL(urlStr);14. URLConnectioncon=url.openConnection();15. con.setDoOutput(true);16. con.setRequestProperty(Pragma:,no-cache);17. con.setRequestProperty(Cache-Control,no-cache);18. con.setRequestProperty(Content-Type,text/xml);19. 20. OutputStreamWriterout=newOutputStreamWriter(con.getOutputStream();21. StringxmlInfo=getXmlInfo();22. out.write(newString(xmlInfo);23. out.flush();24. out.close();25. BufferedReaderbr=newBufferedReader(newInputStreamReader(con.getInputStream();26. Stringline=;27. StringBufferbuf=newStringBuffer();28. for(line=br.readLine();line!=null;line=br.readLine()29. buf.append(newString(line.getBytes(),UTF-8);30. 31. System.out.println(buf.toString();32. catch(MalformedURLExceptione)33. e.printStackTrace();34. catch(IOExceptione)35. e.printStackTrace();36. 37. 38. 39. privateStringgetXmlInfo()40. /通过wsdl文件可以查看接口xml格式数据,构造调用接口xml数据41. Stringxml=42. +43. +44. +45. +工厂类46. +北京47. +148. +049. +150. +51. +214748364752. +12345653. +sohu54. +55. +56. +57. +;58. returnxml;59. 60. 61. publicstaticvoidmain(Stringargs)throwsUnsupportedEncodingException62. Stringurl=http:/localhost:9003/dataService/services/Job;63. newHttpPostTest().testPost(url);64. 65. socke方式实现例子:c-sharpview plaincopy1. importjava.io.IOException;2. importjava.io.InputStream;3. importjava.io.InputStreamReader;4. importjava.io.OutputStream;5. .Socket;6. .UnknownHostException;7. 8. 9. publicclassWebServiceClient10. 11. /*12. *paramargs13. *throwsIOException14. *throwsUnknownHostException15. */16. publicstaticvoidmain(Stringargs)throwsUnknownHostException,IOException17. Socketsocket=newSocket(localhost,9003);18. OutputStreamos=socket.getOutputStream();19. InputStreamis=socket.getInputStream();20. /System.out.println(socket.isConnected();21. StringhttpSend=POST/dataService/services/JobHTTP/1.1/r/n22. +Content-Type:text/xml/r/n23. +Host:localhost:9003/r/n24. +Content-Length:1024/r/n25. +/r/n26. +27. +28. +29. +30. +工厂类31. +北京32. +133. +034. +135. +String36. +214748364737. +12345638. +sohu39. +40. +41. +42. +;43. os.write(httpSend.getBytes();44. os.flush();45. 46. InputStreamReaderireader=newInputStreamReader(is);47. java.io.BufferedReaderbreader=newjava.io.BufferedReader(ireader);48. 49. StringresponseLine=;50. 51. while(responseLine=breader.readLine()!=null)52. 53. System.out.println(newString(responseLine.getBytes(),UTF-8);54. 55. 56. System.out.println();57. 58. 59. 60. java 实现简单http服务端,客户端DEMO分类:java J2EE2011-04-21 23:597701人阅读评论(1)收藏举报javastring解密exceptionrandomwebservice其中用到一个加密解密工具类,如下:c-sharpview plaincopy1. importjava.security.SecureRandom;2. importjavax.crypto.Cipher;3. importjavax.crypto.SecretKey;4. importjavax.crypto.SecretKeyFactory;5. importjavax.crypto.spec.DESKeySpec;6. 7. importsun.misc.BASE64Decoder;8. importsun.misc.BASE64Encoder;9. 10. 11. publicclassDESHelper12. /*13. *加密解密接口14. *paramdata数据15. *parampassword加密解密密码必须8位字节16. *paramflag加密解密标志0:加密,1:解密17. *return18. */19. publicstaticStringdoWork(Stringdata,Stringpassword,intflag)20. try21. SecureRandomrandom=newSecureRandom();22. DESKeySpecdesKey=newDESKeySpec(password.getBytes();23. SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance(DES);24. SecretKeysecurekey=keyFactory.generateSecret(desKey);25. Ciphercipher=Cipher.getInstance(DES);26. /27. if(flag=0)28. BASE64Encoderbase64encoder=newBASE64Encoder();29. cipher.init(Cipher.ENCRYPT_MODE,securekey,random);30. returnbase64encoder.encode(cipher.doFinal(data.getBytes(UTF-8);31. else32. BASE64Decoderbase64decoder=newBASE64Decoder();33. byteencodeByte=base64decoder.decodeBuffer(data);34. cipher.init(Cipher.DECRYPT_MODE,securekey,random);35. bytedecoder=cipher.doFinal(encodeByte);36. returnnewString(decoder,UTF-8);37. 38. 39. catch(Exceptione)40. e.printStackTrace();41. 42. returnnull;43. 44. 45. /*46. *test47. *paramargs48. */49. publicstaticvoidmain(Stringargs)50. try51. /明文52. Stringstr=mobiletype:0|content:你好;53. /密码54. Stringpassword=01010101;55. Stringdesc=DESHelper.doWork(str,password,0);56. System.out.println(密文:+desc);57. /解密58. str=DESHelper.doWork(desc,password,1);59. System.out.println(明文:+str);60. catch(Exceptione1)61. e1.printStackTrace();62. 63. 64. 65. 服务端需要一个jsp及一个java类,jsp直接调java类,或者直接写在servlet中也可以,服务端如下:c-sharpview plaincopy1. importjava.io.BufferedReader;2. importjava.io.IOException;3. importjava.io.InputStreamReader;4. importjava.io.OutputStreamWriter;5. .MalformedURLException;6. 7. importjavax.servlet.http.HttpServletRequest;8. importjavax.servlet.http.HttpServletResponse;9. 10. importcom.sohu.lq.pub.util.DESHelper;11. 12. publicclassServer13. publicstaticvoidpost(HttpServletRequestrequest,HttpServletResponseresponse)14. Stringresult=;15. try16. request.setCharacterEncoding(UTF-8);17. BufferedReaderbr=newBufferedReader(newInputStreamReader(request.getInputStream();18. Stringline=;19. StringBufferbuf=newStringBuffer();20. while(line=br.readLine()!=null)21. buf.append(line);22. 23. result=buf.toString();24. System.out.println(DESHelper.doWork(result,01010101,1);25. 26. 27. response.setHeader(cache-control,no-cache);28. response.setCharacterEncoding(UTF-8);29. response.setContentType(text/html);30. OutputStreamWriterout=newOutputStreamWriter(response.getOutputStream();31. StringxmlInfo=mobile:用户号码|type:运营商标志|content:你好;32. out.write(DESHelper.doWork(xmlInfo,01010101,0);33. out.flush();34. out.close();35. /System.out.println(返回:+xmlInfo);36. catch(MalformedURLExceptione)37. e.printStackTrace();38. catch(IOExceptione)39. e.printStackTrace();40. 41. /returntoff:+result;42. 43. server.jsp页面如下:c-sharpview plaincopy1. 2. 加入该jsp部署在本地,地址为:http:/localhost:8080/sms/media/bus/server.jsp客户端实现如下:c-sharpview plaincopy1. importjava.io.BufferedReader;2. importjava.io.IOException;3. importjava.io.InputStreamReader;4. importjava.io.OutputStreamWriter;5. .MalformedURLException;6. .URL;7. .URLConnection;8. 9. importcom.sohu.lq.pub.util.DESHelper;10. 11. publicclassClient12. publicstaticvoidpost()13. Stringresult=;14. try15. StringurlStr=http:/localhost:8080/sms/media/bus/server.jsp;16. URLurl=newURL(urlStr);17. URLConnectioncon=url.openConnection();18. con.setDoOutput(true);19. con.setRequestProperty(Pragma:,no-cache);20. con.setRequestProperty(Cache-Control,no-cache);21. con.setRequestProperty(Content-Type,text/html);22. 23. OutputStreamWriterout=newOutputStreamWriter(con.getOutputStream();24. StringxmlInfo=mobile:用户号码|type:运营商标志|content:我来了;25. out.write(DESHelper.doWork(xmlInfo,01010101,0);26. out.flush();27. out.close();28. 29. BufferedReaderbr=newBufferedReader(newInputStreamReader(co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利工程安全培训试题及答案
- 乡村民宿管家初级服务流程优化总结报告
- 大客户营销策略及谈判技巧
- 景区门票营销策略与渠道拓展方案
- 2025陕西建工第七建设集团有限公司招聘125人笔试历年常考点试题专练附带答案详解试卷2套
- 项目成本控制预算编制与执行管理
- 2025福建龙岩市上杭县交通建设有限公司招聘部分工程专业技术人员2人笔试历年常考点试题专练附带答案详解试卷2套
- 传统与现代按摩技术对比分析
- 2025浙江金华市义乌市建投集团三级公司人员招聘12人笔试历年难易错考点试卷带答案解析试卷2套
- 2025浙江宁波市象山县人力资源开发服务有限公司第一期招聘总及对象笔试历年常考点试题专练附带答案详解试卷2套
- GB/T 4942-2021旋转电机整体结构的防护等级(IP代码)分级
- GB/T 34550.2-2017海水冷却水处理药剂性能评价方法第2部分:阻垢性能的测定
- 小红书运营方案
- 商标法课件新
- 行政管理专业大专毕业论文3000字
- 消防设施操作员报名承诺书
- 灌肠操作评分标准
- 尿素安全技术说明书
- 货物运输托运单
- 食品安全管理制度(食品经营许可证)
- preps拼详细教程
评论
0/150
提交评论