{"id":180,"date":"2007-10-18T17:53:18","date_gmt":"2007-10-18T08:53:18","guid":{"rendered":"https:\/\/deskplate.net\/blog\/2007\/10\/18\/xml-rpc%e3%81%a7%e3%81%ae%e7%94%bb%e5%83%8f%e6%8a%95%e7%a8%bf%e3%80%80perl\/"},"modified":"2007-10-18T17:53:18","modified_gmt":"2007-10-18T08:53:18","slug":"xml-rpc%e3%81%a7%e3%81%ae%e7%94%bb%e5%83%8f%e6%8a%95%e7%a8%bf%e3%80%80perl","status":"publish","type":"post","link":"https:\/\/deskplate.net\/blog\/archives\/180","title":{"rendered":"XML-RPC\u3067\u306e\u753b\u50cf\u6295\u7a3f\u3000Perl"},"content":{"rendered":"<p>#!c:\\perl\\bin\\perl<br \/>\n#!\/usr\/bin\/perl<br \/>\nuse\u3000strict;<br \/>\nuse\u3000warnings;<br \/>\nuse\u3000IO::Handle;<br \/>\nuse\u3000Data::Dumper;<br \/>\nuse\u3000XMLRPC::Lite;<br \/>\nuse\u3000File::Basename;<br \/>\n{<br \/>\n\u3000\u3000\u3000my\u3000$blogid\u3000\u3000\u3000=\u3000&#8221;\u30d6\u30ed\u30b0\uff29\uff24&#8221;;<br \/>\n\u3000\u3000\u3000my\u3000$username\u3000=\u3000&#8221;\u30e6\u30fc\u30b6\u30fc\u540d&#8221;;<br \/>\n\u3000\u3000\u3000my\u3000$password\u3000=\u3000&#8221;\u30d1\u30b9\u30ef\u30fc\u30c9&#8221;;<br \/>\n\u3000\u3000\u3000my\u3000$proxyurl\u3000=\u3000&#8221;\u30d6\u30ed\u30b0\u306eXMLRPC\u5148&#8221;;<br \/>\n\u3000\u3000\u3000# \u753b\u50cf\u30d1\u30b9<br \/>\n\u3000\u3000\u3000my\u3000$filename\u3000\u3000=\u3000&#8221;C:\/images\/xxxx.jpg&#8221;;<br \/>\n\u3000\u3000\u3000my\u3000$bits\u3000=\u3000read_bin_file\u3000($filename);<br \/>\n\u3000\u3000\u3000#<br \/>\n\u3000\u3000\u3000# \u3053\u3053\u3067\u753b\u50cf\u3092\u6295\u7a3f\u3059\u308b<br \/>\n\u3000\u3000\u3000# \u3044\u307e\u306e\u3068\u3053\u308d\uff11\u679a\u5358\u4f4d<br \/>\n\u3000\u3000\u3000#<br \/>\n\u3000\u3000\u3000my\u3000$picresult\u3000=\u3000XMLRPC::Lite<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000->\u3000proxy($proxyurl)<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000->\u3000call(&#8216;metaWeblog.newMediaObject&#8217;,\u3000$blogid,\u3000$username,\u3000$password,<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;bits&#8217;\u3000=>\u3000XMLRPC::Data->type(&#8216;base64&#8217;,\u3000$bits),<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;type&#8217;\u3000=>\u3000&#8221;image\/jpeg&#8221;,<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;name&#8217;\u3000=>\u3000basename($filename)<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000}<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000)<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000->\u3000result;<br \/>\n\u3000\u3000\u3000if\u3000(!defined\u3000($picresult))<br \/>\n\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000die\u3000&#8221;failed\u3000$!&#8221;;<br \/>\n\u3000\u3000\u3000}<br \/>\n\u3000\u3000\u3000else<br \/>\n\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000#<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000#\u3000\u672c\u6587\u306e\u6295\u7a3f<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000#<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000my\u3000$msgresult\u3000=\u3000XMLRPC::Lite<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000->\u3000proxy($proxyurl)<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000->\u3000call(&#8216;metaWeblog.newPost&#8217;,\u3000$blogid,\u3000$username,\u3000$password,<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;title&#8217;\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000=>\u3000&#8221;this\u3000is\u3000the\u3000title&#8221;,<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;description&#8217;\u3000\u3000\u3000\u3000\u3000\u3000\u3000=>\u3000&#8221;and\u3000this\u3000is\\n\\n&#8221;\u3000.<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8221;the\u3000body\u3000and\u3000a\u3000link\u3000to\u3000the\u3000picture\\n\\n&#8221;\u3000.<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8221;<img\u3000src=\\\"\"\u3000.\u3000$picresult->{&#8216;url&#8217;}\u3000.\u3000&#8221;\\&#8221;>\\n\\nthe\u3000end\u3000:-)\\n&#8221;,<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_allow_comments&#8217;\u3000=>\u30001,\u3000\u3000#\u3000must\u3000be\u3000int,\u3000not\u3000string<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_allow_pings&#8217;\u3000\u3000\u3000\u3000=>\u30001\u3000\u3000\u3000#\u3000must\u3000be\u3000int,\u3000not\u3000string<br \/>\n#\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_convert_breaks&#8217;\u3000=>\u3000&#8221;&#8221;,\u3000#\u3000string,\u3000see\u3000mt.supportedTextFilters\u3000for\u3000a\u3000valid\u3000value<br \/>\n#\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_text_more&#8217;\u3000\u3000\u3000\u3000\u3000\u3000=>\u3000&#8221;&#8221;,\u3000#\u3000the\u3000extended\u3000entry<br \/>\n#\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_excerpt&#8217;\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000=>\u3000&#8221;&#8221;,<br \/>\n#\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_keywords&#8217;\u3000\u3000\u3000\u3000\u3000\u3000\u3000=>\u3000&#8221;&#8221;,<br \/>\n#\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000&#8217;mt_tb_ping_urls&#8217;\u3000\u3000\u3000=>\u3000??,\u3000#array\u3000of\u3000strings,\u3000ping\u3000URLs<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000},<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u30001\u3000#\u30001\u3000=\u3000publish<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000)<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000->\u3000result;<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000if\u3000(!defined\u3000($msgresult))<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000die\u3000&#8221;failed\u3000$!&#8221;;<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000}<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000else<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000{<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000print\u3000Dumper\u3000($msgresult);<br \/>\n\u3000\u3000\u3000\u3000\u3000\u3000}<br \/>\n\u3000\u3000\u3000}<br \/>\n}<br \/>\nsub\u3000read_bin_file<br \/>\n{<br \/>\n\u3000\u3000\u3000my\u3000($filename)\u3000=\u3000@_;<br \/>\n\u3000\u3000\u3000#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n\u3000\u3000\u3000#\u3000read\u3000in\u3000the\u3000picture<br \/>\n\u3000\u3000\u3000my\u3000$fh\u3000=\u3000IO::Handle->new();<br \/>\n\u3000\u3000\u3000open($fh,\u3000$filename)\u3000or\u3000die\u3000&#8221;$!&#8221;;<br \/>\n\u3000\u3000\u3000local($\/)\u3000=\u3000undef;\u3000\u3000#\u3000slurp<br \/>\n\u3000\u3000\u3000binmode($fh);<br \/>\n\u3000\u3000\u3000my\u3000$bits\u3000\u3000=\u3000<$fh>;<br \/>\n\u3000\u3000\u3000close($fh);<br \/>\n\u3000\u3000\u3000return\u3000$bits;<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>#!c:\\perl\\bin\\perl #<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-perl"],"_links":{"self":[{"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":0,"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"wp:attachment":[{"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/deskplate.net\/blog\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}