{"id":58,"date":"2018-03-20T00:49:53","date_gmt":"2018-03-19T16:49:53","guid":{"rendered":"http:\/\/chenhaitao.me\/?p=58"},"modified":"2018-03-20T00:49:53","modified_gmt":"2018-03-19T16:49:53","slug":"c%e4%b8%8ejava%e8%b7%a8%e5%b9%b3%e5%8f%b0%e5%8e%8b%e7%bc%a9%e4%b8%8e%e8%a7%a3%e5%8e%8b%e7%bc%a9%e9%80%9a%e8%ae%af","status":"publish","type":"post","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/20\/c%e4%b8%8ejava%e8%b7%a8%e5%b9%b3%e5%8f%b0%e5%8e%8b%e7%bc%a9%e4%b8%8e%e8%a7%a3%e5%8e%8b%e7%bc%a9%e9%80%9a%e8%ae%af\/","title":{"rendered":"C#\u4e0ejava\u8de8\u5e73\u53f0\u538b\u7f29\u4e0e\u89e3\u538b\u7f29\u901a\u8baf"},"content":{"rendered":"<p>\u5173\u952e\u6280\u672f\u70b9\u548c\u4f53\u4f1a:<\/p>\n<p>\u538b\u7f29\u7684\u7ed3\u679c\u91c7\u7528Base64\u7f16\u7801\uff0c\u65b9\u4fbf\u5728Java\u7aef\u6216\u8005C#\u7aef\u6253\u5370\u51fa\u6765\u8c03\u8bd5\uff0c\u4e5f\u65b9\u4fbf\u5728\u4e0d\u540c\u7684\u5e94\u7528\u95f4\u4f20\u8f93\uff08\u5982webservice\uff09\uff0c\u7f3a\u70b9\u662f\u6bd4\u8f6c\u7801\u524d\u4f53\u79ef\u53d8\u5927\u4e86\u7ea635%<br \/>\n\u5b57\u7b26\u4e32\u91c7\u7528UTF-8\u7f16\u7801\u83b7\u5f97byte\u6570\u7ec4\uff0c\u4fdd\u8bc1\u4e24\u7aef\u901a\u7528\uff0c\u5982\u679c\u5e94\u7528\u5bf9\u7f16\u7801\u6709\u8981\u6c42\uff0c\u4e24\u7aef\u540c\u65f6\u6539\u4e3a\u5176\u4ed6\u7f16\u7801\u65b9\u5f0f\u4e5f\u53ef\u4ee5<br \/>\n\u4eceJava\u548cC#\u7684\u4ee3\u7801\u770b\uff0c\u4e24\u8005\u4ee3\u7801\u4e0a\u6709\u7ec6\u5fae\u5dee\u522b\uff0c\u4f46\u662f\u601d\u8def\u65b9\u9762\u4e24\u8005\u57fa\u672c\u662f\u4e00\u6837\u7684<br \/>\n\u53e6\u5916\u4e00\u4e2a\u5907\u5fd8\uff0cJava\u91cc\u8fb9\uff0cStream\u7c7b\u8981\u53ca\u65f6close\uff0c\u4e0d\u7136\u8f93\u51fa\u7684\u7ed3\u679c\u662f\u4e0d\u5b8c\u6574\u7684\uff0c\u5373\u4f7f\u8c03\u7528\u4e86flush<br \/>\nC#\u7684using\u771f\u597d\u7528\uff0cJava\u7684\u7c7b\u4f3c\u8bed\u8a00\u7279\u6027\u57281.7\u624d\u652f\u6301&#8230;<br \/>\nJava\uff0c\u7528Session Bean\u5efa\u7acb\u4e86\u4e00\u4e2a\u7b80\u5355\u7684WebService\uff0c\u63d0\u4f9b\u4e00\u4e2a\u7b80\u5355\u7684\u8c03\u7528SayHello\uff0c\u7136\u540eC#\u91cc\u5efa\u7acb\u4e00\u4e2awinform\u5e94\u7528\uff0c\u6dfb\u52a0\u670d\u52a1\u5f15\u7528\uff0c\u5f15\u7528Java\u7684webservice WSDL\u3002<\/p>\n<p>\u5177\u4f53\u8fc7\u7a0b\u4e0d\u591a\u8bf4\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<p>Java\u4ee3\u7801\uff1a<\/p>\n<p>[javascript]<br \/>\nimport java.io.ByteArrayInputStream;<br \/>\nimport java.io.ByteArrayOutputStream;<br \/>\nimport java.io.IOException;<br \/>\nimport java.util.zip.GZIPInputStream;<br \/>\nimport java.util.zip.GZIPOutputStream;<\/p>\n<p>import javax.ejb.Stateless;<br \/>\nimport javax.jws.WebMethod;<br \/>\nimport javax.jws.WebService;<\/p>\n<p>import sun.misc.BASE64Decoder;<br \/>\nimport sun.misc.BASE64Encoder;<\/p>\n<p>@Stateless<br \/>\n@WebService<br \/>\npublic class TestWebService {<\/p>\n<p>@WebMethod<br \/>\npublic String SayHello(String name) throws Exception {<\/p>\n<p>String t = uncompress(name);<br \/>\nreturn compress(&#8220;\u89e3\u538b\uff1a&#8221; + t);<\/p>\n<p>}<\/p>\n<p>@WebMethod(exclude = true)<br \/>\npublic static String compress(String str) throws IOException {<br \/>\nif (str == null || str.length() == 0) {<br \/>\nreturn &#8220;&#8221;;<br \/>\n}<\/p>\n<p>byte[] tArray;<br \/>\nByteArrayOutputStream out = new ByteArrayOutputStream();<br \/>\nGZIPOutputStream gzip = new GZIPOutputStream(out);<br \/>\ntry {<br \/>\ngzip.write(str.getBytes(&#8220;UTF-8&#8221;));<br \/>\ngzip.flush();<br \/>\n} finally {<br \/>\ngzip.close();<br \/>\n}<\/p>\n<p>tArray = out.toByteArray();<br \/>\nout.close();<\/p>\n<p>BASE64Encoder tBase64Encoder = new BASE64Encoder();<br \/>\nreturn tBase64Encoder.encode(tArray);<br \/>\n}<\/p>\n<p>@WebMethod(exclude = true)<br \/>\npublic static String uncompress(String str) throws IOException {<br \/>\nif (str == null || str.length() == 0) {<br \/>\nreturn &#8220;&#8221;;<br \/>\n}<\/p>\n<p>BASE64Decoder tBase64Decoder = new BASE64Decoder();<br \/>\nbyte[] t = tBase64Decoder.decodeBuffer(str);<\/p>\n<p>ByteArrayOutputStream out = new ByteArrayOutputStream();<br \/>\nByteArrayInputStream in = new ByteArrayInputStream(t);<br \/>\nGZIPInputStream gunzip = new GZIPInputStream(in);<br \/>\ntry {<br \/>\nbyte[] buffer = new byte[256];<br \/>\nint n;<br \/>\nwhile ((n = gunzip.read(buffer)) &gt;= 0) {<br \/>\nout.write(buffer, 0, n);<br \/>\n}<br \/>\n}finally{<br \/>\ngunzip.close();<br \/>\n}<br \/>\nin.close();<br \/>\nout.close();<\/p>\n<p>return out.toString(&#8220;UTF-8&#8221;);<br \/>\n}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>C#\u7684\u4ee3\u7801\uff1a<\/p>\n<p>[csharp]<br \/>\nusing System;<br \/>\nusing System.IO;<br \/>\nusing System.IO.Compression;<br \/>\nusing System.Text;<br \/>\nusing System.Windows.Forms;<br \/>\nusing testWebService.ServiceReference1;<\/p>\n<p>namespace testWebService<br \/>\n{<br \/>\npublic partial class Form1 : Form<br \/>\n{<br \/>\npublic Form1()<br \/>\n{<br \/>\nInitializeComponent();<br \/>\n}<\/p>\n<p>private void btnSayOK_Click(object sender, EventArgs e)<br \/>\n{<\/p>\n<p>string name = txtName.Text;<br \/>\nstring zipedName = Zip(name);<\/p>\n<p>TestWebServiceClient client = new TestWebServiceClient();<br \/>\nstring result = client.SayHello(zipedName);<br \/>\nMessageBox.Show(UnZip(result));<br \/>\n}<\/p>\n<p>public static string Zip(string value)<br \/>\n{<br \/>\nbyte[] byteArray = Encoding.UTF8.GetBytes(value);<br \/>\nbyte[] tmpArray;<\/p>\n<p>using (MemoryStream ms = new MemoryStream())<br \/>\n{<br \/>\nusing (GZipStream sw = new GZipStream(ms, CompressionMode.Compress))<br \/>\n{<br \/>\nsw.Write(byteArray, 0, byteArray.Length);<br \/>\nsw.Flush();<br \/>\n}<br \/>\ntmpArray = ms.ToArray();<br \/>\n}<br \/>\nreturn Convert.ToBase64String(tmpArray);<br \/>\n}<\/p>\n<p>public static string UnZip(string value)<br \/>\n{<br \/>\nbyte[] byteArray = Convert.FromBase64String(value);<br \/>\nbyte[] tmpArray;<\/p>\n<p>using (MemoryStream msOut = new MemoryStream())<br \/>\n{<br \/>\nusing (MemoryStream msIn = new MemoryStream(byteArray))<br \/>\n{<br \/>\nusing (GZipStream swZip = new GZipStream(msIn, CompressionMode.Decompress))<br \/>\n{<br \/>\nswZip.CopyTo(msOut);<br \/>\ntmpArray = msOut.ToArray();<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\nreturn Encoding.UTF8.GetString(tmpArray);<br \/>\n}<br \/>\n}<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5173\u952e\u6280\u672f\u70b9\u548c\u4f53\u4f1a: \u538b\u7f29\u7684\u7ed3\u679c\u91c7\u7528Base64\u7f16\u7801\uff0c\u65b9\u4fbf\u5728Java\u7aef\u6216\u8005C#\u7aef\u6253\u5370\u51fa\u6765\u8c03\u8bd5\uff0c\u4e5f\u65b9\u4fbf\u5728\u4e0d\u540c\u7684\u5e94\u7528\u95f4\u4f20\u8f93\uff08\u5982webservice\uff09\uff0c\u7f3a\u70b9\u662f\u6bd4\u8f6c\u7801\u524d\u4f53&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/20\/c%e4%b8%8ejava%e8%b7%a8%e5%b9%b3%e5%8f%b0%e5%8e%8b%e7%bc%a9%e4%b8%8e%e8%a7%a3%e5%8e%8b%e7%bc%a9%e9%80%9a%e8%ae%af\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[23,11],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-2","tag-c","tag-java"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9HWWB-W","jetpack-related-posts":[{"id":5,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/03\/lombok%e7%9a%84%e4%bd%bf%e7%94%a8\/","url_meta":{"origin":58,"position":0},"title":"lombok\u7684\u4f7f\u7528","author":"\u6770\u514b\u9648","date":"2018\u5e743\u67083\u65e5","format":false,"excerpt":"\u80cc\u666f \u5728\u65e5\u5e38\u7684\u5f00\u53d1\u4e2d,\u6709\u5f88\u591a\u5de5\u4f5c\u90fd\u662f\u91cd\u590d\u7684,\u6bd4\u5982: - \u6211\u4eec\u4f1a\u5b9a\u4e49\u5f88\u591a\u7684domain\u5b9e\u4f53\u7c7b,\u9700\u8981\u7ed9\u6bcf\u2026","rel":"","context":"\u5728\u201c\u6280\u672f\u201d\u4e2d","block_context":{"text":"\u6280\u672f","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e6%8a%80%e6%9c%af\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/06\/springboot-schedule-%e9%85%8d%e7%bd%ae\/","url_meta":{"origin":58,"position":1},"title":"SpringBoot Schedule \u914d\u7f6e","author":"\u6770\u514b\u9648","date":"2018\u5e743\u67086\u65e5","format":false,"excerpt":"1. \u5b9a\u65f6\u4efb\u52a1\u5b9e\u73b0\u65b9\u5f0f \u5b9a\u65f6\u4efb\u52a1\u5b9e\u73b0\u65b9\u5f0f\uff1a Java\u81ea\u5e26\u7684java.util.Timer\u7c7b\uff0c\u8fd9\u4e2a\u7c7b\u5141\u2026","rel":"","context":"\u5728\u201c\u6280\u672f\u201d\u4e2d","block_context":{"text":"\u6280\u672f","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e6%8a%80%e6%9c%af\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":126,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/05\/25\/mac%e4%b8%8bidea%e7%9a%84%e4%bd%bf%e7%94%a8%e4%b9%8bsvn%e7%af%87\/","url_meta":{"origin":58,"position":2},"title":"mac\u4e0bidea\u7684\u4f7f\u7528\u4e4bsvn\u7bc7","author":"\u6770\u514b\u9648","date":"2018\u5e745\u670825\u65e5","format":false,"excerpt":"\u6839\u636e\u5728eclipse\u91cc\u4f7f\u7528svn\u7684\u7ecf\u9a8c\u7422\u78e8\u4e86\u4e00\u4e0bidea,\u73b0\u628aidea\u4e0bsvn\u7684\u4f7f\u7528\u65b9\u6cd5\u8bb0\u5f55\u5982\u4e0b \u4e3b\u2026","rel":"","context":"\u5728\u201c\u5de5\u5177\u201d\u4e2d","block_context":{"text":"\u5de5\u5177","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e5%b7%a5%e5%85%b7\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dl2.iteye.com\/upload\/attachment\/0090\/0741\/32c66222-7432-31e3-a8f5-77d3d83e15d9.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dl2.iteye.com\/upload\/attachment\/0090\/0741\/32c66222-7432-31e3-a8f5-77d3d83e15d9.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dl2.iteye.com\/upload\/attachment\/0090\/0741\/32c66222-7432-31e3-a8f5-77d3d83e15d9.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/dl2.iteye.com\/upload\/attachment\/0090\/0741\/32c66222-7432-31e3-a8f5-77d3d83e15d9.png?resize=700%2C400 2x"},"classes":[]},{"id":135,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/06\/25\/%e5%b8%a6%e4%ba%8b%e5%8a%a1%e7%9a%84queryrunner\/","url_meta":{"origin":58,"position":3},"title":"\u5e26\u4e8b\u52a1\u7684QueryRunner","author":"\u6770\u514b\u9648","date":"2018\u5e746\u670825\u65e5","format":false,"excerpt":"DBUtils\u7b80\u5316\u4e86\u5bf9\u6570\u636e\u5e93\u7684\u64cd\u4f5c\uff0c\u518d\u52a0\u4e0a\u6211\u4eec\u4e0a\u4e00\u8282\u8bb2\u7684JdbcUtils\uff0c\u4e24\u8005\u914d\u5408\u8d77\u6765\u7528\uff0c\u4e5f\u662f\u975e\u5e38\u2026","rel":"","context":"\u5728\u201c\u5f00\u53d1\u201d\u4e2d","block_context":{"text":"\u5f00\u53d1","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e5%bc%80%e5%8f%91\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":32,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/09\/spring-%e7%9a%84scheduled%e6%b3%a8%e8%a7%a3%e5%ae%9e%e7%8e%b0%e5%ae%9a%e6%97%b6%e4%bb%bb%e5%8a%a1%e6%89%a7%e8%a1%8c%e5%92%8c%e8%b0%83%e5%ba%a6\/","url_meta":{"origin":58,"position":4},"title":"Spring \u7684@Scheduled\u6ce8\u89e3\u5b9e\u73b0\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u548c\u8c03\u5ea6","author":"\u6770\u514b\u9648","date":"2018\u5e743\u67089\u65e5","format":false,"excerpt":"Spring \u7684@Scheduled\u6ce8\u89e3\u5b9e\u73b0\u5b9a\u65f6\u4efb\u52a1\u6267\u884c\u548c\u8c03\u5ea6 \u9996\u5148\u8981\u914d\u7f6e\u6211\u4eec\u7684spring.xml\u2026","rel":"","context":"\u5728\u201c\u6280\u672f\u201d\u4e2d","block_context":{"text":"\u6280\u672f","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e6%8a%80%e6%9c%af\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18,"url":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/2018\/03\/04\/mac%e4%b8%8b%e6%90%ad%e5%bb%baredis%e7%8e%af%e5%a2%83\/","url_meta":{"origin":58,"position":5},"title":"mac\u4e0b\u642d\u5efaredis\u73af\u5883","author":"\u6770\u514b\u9648","date":"2018\u5e743\u67084\u65e5","format":false,"excerpt":"\u4e00\u3001redis\u7b80\u4ecb redis\u662f\u4e00\u4e2akey-value\u5b58\u50a8\u7cfb\u7edf\u3002\u548cMemcached\u7c7b\u4f3c\uff0c\u5b83\u652f\u6301\u5b58\u50a8\u2026","rel":"","context":"\u5728\u201c\u6280\u672f\u201d\u4e2d","block_context":{"text":"\u6280\u672f","link":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/category\/%e6%8a%80%e6%9c%af\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":1,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":59,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/posts\/58\/revisions\/59"}],"wp:attachment":[{"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chenhaitao.com\/.wp-toolkit_I\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}