{"id":35,"date":"2020-11-30T18:36:09","date_gmt":"2020-11-30T10:36:09","guid":{"rendered":"http:\/\/[240e:33d:129:4cc0:265e:beff:fe51:adfd]\/WordPress\/?p=35"},"modified":"2021-10-07T17:32:45","modified_gmt":"2021-10-07T09:32:45","slug":"android%e4%b8%ad%e8%b0%83%e7%94%a8-py%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/www.jinhaihan.top\/WordPress\/android%e4%b8%ad%e8%b0%83%e7%94%a8-py%e6%96%87%e4%bb%b6\/","title":{"rendered":"Android\u4e2d\u8c03\u7528.py\u6587\u4ef6"},"content":{"rendered":"<h2>1\u3001\u5f00\u53d1\u73af\u5883<\/h2>\n<p>Android Studio 3.2<\/p>\n<h2>2\u3001\u51c6\u5907<\/h2>\n<p>\u4e0b\u8f7d\u6700\u65b0\u7684CLE for Android<\/p>\n<p><a href=\"http:\/\/www.srplab.com\/cn\/files\/products.html\" target=\"_blank\" rel=\"noopener\">CLE\u7f51\u7ad9<\/a><\/p>\n<p>\u4e0b\u8f7d\u4e4b\u540e\u89e3\u538b\uff0c\u5c06\u793a\u4f8b\u5de5\u7a0b\u4e2d\u7684\u51e0\u4e2astarcore_android_rXXX.jar\u62f7\u8d1d\u5230Android Studio\u5de5\u7a0bApp-&gt;libs\u6587\u4ef6\u5939\u4e0b\uff0c\u5c06\u5176\u4ed6\u6587\u4ef6\u4e5f\u6309\u7167\u6b63\u5e38\u4f4d\u7f6e\u653e\u597d\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i0.wp.com\/s1.ax1x.com\/2018\/12\/13\/FNCc0H.png?w=740&#038;ssl=1\" alt=\"\u5982\u56fe\u6240\u793a\" data-recalc-dims=\"1\" \/><\/p>\n<p>\u7136\u540e\u5728libs\u7684\u6587\u4ef6\u53f3\u952e\uff0cAdd As Library,\u6216\u8005\u76f4\u63a5\u5728app\u7684bulid.gradle\u6dfb\u52a0\u7f16\u8bd1\u9009\u9879\uff1a<\/p>\n<pre><code>implementation files(&#039;libs\/starcore_android_r2.51.jar&#039;)\n\nimplementation files(&#039;libs\/starcore_android_r3.0.jar&#039;)<\/code><\/pre>\n<p>\u7136\u540e\u7f16\u8f91\u5185\u90e8\u7684\u4e09\u4e2apy\u6587\u4ef6\uff0ccalljava\u3001text.py\uff08\u672c\u6765\u5e94\u8be5\u662ftest.py\u7684\uff0c\u6253\u9519\u4e86\uff0c\u5c06\u9519\u5c31\u9519\uff09\u3001py_code.py\u3002\u5c31\u662f\u8fd0\u884c\u4e00\u4e2ademo\u6240\u4ee5\u5199\u4e24\u4e2a\u9a8c\u8bc1\u4e00\u4e0b\u5c31\u597d\uff1a<\/p>\n<p>text.py:<\/p>\n<pre><code class=\"language-python\">def add(x,y) :\n    return x+y\n<\/code><\/pre>\n<p>py_code.py:<\/p>\n<pre><code class=\"language-python\">import time\n\ndef get_time():\n    return time.time()<\/code><\/pre>\n<p>calljava.py:<\/p>\n<pre><code class=\"language-python\">import imp  #test load path\n\ndef log(content):\n    JavaClass.d(&quot;formPython&quot;,content)\n\nlog(&quot;Hello Android,form python&quot;)<\/code><\/pre>\n<h2>3\u3001\u5728Java\u4e2d\u8c03\u7528<\/h2>\n<p>\u73b0\u5728\u4ee3\u7801\u548c\u5de5\u5177\u90fd\u5df2\u7ecf\u51c6\u5907\u597d\u4e86\uff0c\u5c31\u53ef\u4ee5\u5728Android\u4e2d\u5c1d\u8bd5\u8c03\u7528\u4e86\uff1a<\/p>\n<pre><code class=\"language-java\">public StarSrvGroupClass SrvGroup;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        final File appFile = getFilesDir();  \/*-- \/data\/data\/packageName\/files --*\/\n        final String appLib = getApplicationInfo().nativeLibraryDir;\n\n        AsyncTask.execute(new Runnable() {\n\n            @Override\n            public void run() {\n                loadPy(appFile,appLib);\n            }\n        });\n    }\n\n    void loadPy(File appFile,String appLib){\n        \/\/\u62f7\u8d1dPython\u76f8\u5173\u73af\u5883\n        File pythonLibFile = new File(appFile, &quot;python3.4.zip&quot;);\n        if (!pythonLibFile.exists()) {\n            copyFile(this, &quot;python3.4.zip&quot;);\n            copyFile(this, &quot;_struct.cpython-34m.so&quot;);\n            copyFile(this, &quot;binascii.cpython-34m.so&quot;);\n            copyFile(this, &quot;time.cpython-34m.so&quot;);\n            copyFile(this, &quot;zlib.cpython-34m.so&quot;);\n        }\n\n        \/\/ \u62f7\u8d1dPython \u4ee3\u7801\n        copyFile(this, &quot;calljava.py&quot;);\n        copyFile(this, &quot;test.py&quot;);\n\n        try {\n            \/\/ \u52a0\u8f7dPython\u89e3\u91ca\u5668\n            System.load(appLib + File.separator + &quot;libpython3.4m.so&quot;);\n\n            \/\/ \u9664\u4e86\u5c06\u4ee3\u7801\u76f4\u63a5\u62f7\u8d1d\uff0c\u8fd8\u652f\u6301\u5c06\u4ee3\u7801\u538b\u7f29\u4e3azip\u5305\uff0c\u901a\u8fc7Install\u65b9\u6cd5\u89e3\u538b\u5230\u6307\u5b9a\u8def\u5f84\n            InputStream dataSource = getAssets().open(&quot;py_code.zip&quot;);\n            StarCoreFactoryPath.Install(dataSource, appFile.getPath(),true );\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n\n        \/*----init starcore----*\/\n        StarCoreFactoryPath.StarCoreCoreLibraryPath = appLib;\n        StarCoreFactoryPath.StarCoreShareLibraryPath = appLib;\n        StarCoreFactoryPath.StarCoreOperationPath = appFile.getPath();\n\n        StarCoreFactory starcore = StarCoreFactory.GetFactory();\n        StarServiceClass Service = starcore._InitSimple(&quot;test&quot;, &quot;123&quot;, 0, 0);\n        SrvGroup = (StarSrvGroupClass) Service._Get(&quot;_ServiceGroup&quot;);\n        Service._CheckPassword(false);\n\n        \/*----run python code----*\/\n        SrvGroup._InitRaw(&quot;python34&quot;, Service);\n        StarObjectClass python = Service._ImportRawContext(&quot;python&quot;, &quot;&quot;, false, &quot;&quot;);\n        \/\/ \u8bbe\u7f6ePython\u6a21\u5757\u52a0\u8f7d\u8def\u5f84\n        python._Call(&quot;import&quot;, &quot;sys&quot;);\n        StarObjectClass pythonSys = python._GetObject(&quot;sys&quot;);\n        StarObjectClass pythonPath = (StarObjectClass) pythonSys._Get(&quot;path&quot;);\n        pythonPath._Call(&quot;insert&quot;, 0, appFile.getPath()+ File.separator +&quot;python3.4.zip&quot;);\n        pythonPath._Call(&quot;insert&quot;, 0, appLib);\n        pythonPath._Call(&quot;insert&quot;, 0, appFile.getPath());\n\n        \/\/\u8c03\u7528Python\u4ee3\u7801\n        Service._DoFile(&quot;python&quot;, appFile.getPath() + &quot;\/py_code.py&quot;, &quot;&quot;);\n        long time = python._Calllong(&quot;get_time&quot;);\n        Log.d(&quot;python&quot;, &quot;form python time=&quot;+time);\n\n        Service._DoFile(&quot;python&quot;, appFile.getPath() + &quot;\/text.py&quot;, &quot;&quot;);\n        int result = python._Callint(&quot;add&quot;, 5, 2);\n        Log.d(&quot;python&quot;, &quot;result=&quot;+result);\n\n        python._Set(&quot;JavaClass&quot;, Log.class);\n        Service._DoFile(&quot;python&quot;, appFile.getPath() + &quot;\/calljava.py&quot;, &quot;&quot;);\n    }\n\n    private void copyFile(Context c, String Name) {\n        File outfile = new File(c.getFilesDir(), Name);\n        BufferedOutputStream outStream = null;\n        BufferedInputStream inStream = null;\n\n        try {\n            outStream = new BufferedOutputStream(new FileOutputStream(outfile));\n            inStream = new BufferedInputStream(c.getAssets().open(Name));\n\n            byte[] buffer = new byte[1024 * 10];\n            int readLen = 0;\n            while ((readLen = inStream.read(buffer)) != -1) {\n                outStream.write(buffer, 0, readLen);\n            }\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            try {\n                if (inStream != null) inStream.close();\n                if (outStream != null) outStream.close();\n            } catch (IOException e) {\n                e.printStackTrace();\n            }\n        }\n    }<\/code><\/pre>\n<p>\u8fd9\u65f6\u53bb\u67e5\u770blog\uff0c\u4f1a\u6709\u4e09\u4e2atag\u4e3apython\u7684\u8f93\u51fa\uff0c\u5c31\u662f\u8c03\u7528\u4e09\u4e2apython\u6587\u4ef6\u7684\u7ed3\u679c<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u5f00\u53d1\u73af\u5883 Android Studi&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[8],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/6d7bd812d111317146d38a753553a0f4.jpg?fit=500%2C333&ssl=1","jetpack-related-posts":[{"id":186,"url":"https:\/\/www.jinhaihan.top\/WordPress\/maven%e6%8f%92%e4%bb%b6-%e5%92%8c-maven-publish-%e6%8f%92%e4%bb%b6%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95-md\/","url_meta":{"origin":35,"position":0},"title":"maven\u63d2\u4ef6 \u548c maven-publish \u63d2\u4ef6\u4f7f\u7528\u65b9\u6cd5.md","author":"Kim","date":"2022\u5e744\u670818\u65e5","format":false,"excerpt":"\u622a\u53d6\u8f6c\u8f7d\u81ea\u7f51\u7edc\uff0c\u65b9\u4fbf\u8bb0\u5f55\u77e5\u8bc6\uff0c\u975e\u539f\u521b \u4e00\u3001Maven\u63d2\u4ef6\u7684\u4f7f\u7528\u65b9\u6cd5 maven \u63d2\u4ef6\u662f Gradle\u2026","rel":"","context":"\u5728\u201cAndroid\u201d\u4e2d","block_context":{"text":"Android","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/android\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/4869_pc.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/4869_pc.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/4869_pc.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/4869_pc.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":43,"url":"https:\/\/www.jinhaihan.top\/WordPress\/iar%e7%bc%96%e8%af%91zigbee%e5%87%ba%e7%8e%b0%e9%97%ae%e9%a2%98undefined-external-v1-referred-in-af\/","url_meta":{"origin":35,"position":1},"title":"IAR\u7f16\u8bd1zigbee\u51fa\u73b0\u95ee\u9898Undefined external V1 referred in AF","author":"Kim","date":"2020\u5e7411\u670830\u65e5","format":false,"excerpt":"\u5347\u7ea7IAR \u4e4b\u540e\uff0c\u6253\u5f00\u65e7\u5de5\u7a0b\uff0c\u7f16\u8bd1\u7684\u65f6\u5019\u4f1a\u51fa\u73b0\u4e24\u4e2a\u9519\u8bef\uff1a Error[e46]: Undefined\u2026","rel":"","context":"\u5728\u201cZigbee\u201d\u4e2d","block_context":{"text":"Zigbee","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/zigbee\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/741ee0fa730053d050b03f8b3f2b7d53.jpg?fit=1024%2C640&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/741ee0fa730053d050b03f8b3f2b7d53.jpg?fit=1024%2C640&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/741ee0fa730053d050b03f8b3f2b7d53.jpg?fit=1024%2C640&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":205,"url":"https:\/\/www.jinhaihan.top\/WordPress\/wpf%e4%b8%ad%e7%9a%84%e5%a4%9a%e8%af%ad%e8%a8%80%e6%94%af%e6%8c%81_%e5%8a%a8%e6%80%81%e5%88%87%e6%8d%a2%e8%af%ad%e8%a8%80\/","url_meta":{"origin":35,"position":2},"title":"wpf\u4e2d\u7684\u591a\u8bed\u8a00\u652f\u6301_\u52a8\u6001\u5207\u6362\u8bed\u8a00","author":"Kim","date":"2022\u5e748\u670831\u65e5","format":false,"excerpt":"\u4e3b\u6d41\u65b9\u6cd5\u53c2\u8003\u535a\u5ba2\uff1a(\u867d\u7136\u8001\u4e86\u70b9\u4f46\u662f\u6709\u7528) WPF\u5e94\u7528\u7a0b\u5e8f\u652f\u6301\u591a\u56fd\u8bed\u8a00\u89e3\u51b3\u65b9\u6848 \u4f46\u662f\u9ed8\u8ba4\u7684\u65b9\u6848\u91cc\u8bd5\u7528\u9759\u2026","rel":"","context":"\u5728\u201cWPF\u201d\u4e2d","block_context":{"text":"WPF","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/wpf\/"},"img":{"alt_text":"pieces of paper with words","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2022\/08\/pexels-photo-6045344.jpeg?fit=1200%2C795&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2022\/08\/pexels-photo-6045344.jpeg?fit=1200%2C795&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2022\/08\/pexels-photo-6045344.jpeg?fit=1200%2C795&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2022\/08\/pexels-photo-6045344.jpeg?fit=1200%2C795&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":258,"url":"https:\/\/www.jinhaihan.top\/WordPress\/%e4%bd%bf%e7%94%a8retrofit%e4%b8%8a%e4%bc%a0uri%e6%96%87%e4%bb%b6\/","url_meta":{"origin":35,"position":3},"title":"\u4f7f\u7528Retrofit\u4e0a\u4f20URI\u6587\u4ef6","author":"Kim","date":"2023\u5e746\u670823\u65e5","format":false,"excerpt":"\u9996\u5148\u5b9a\u4e49\u4e00\u4e2a\u4e0a\u4f20\u65b9\u6cd5\uff1a @Headers(DOMAIN_NAME+ DOMAIN_NAME_test\u2026","rel":"","context":"\u5728\u201cAndroid\u201d\u4e2d","block_context":{"text":"Android","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/android\/"},"img":{"alt_text":"The Rhine\u2013Meuse\u2013Scheldt a river delta in the Netherlands","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/06\/49830597672_9d1929026e_b.jpg?fit=1024%2C683&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/06\/49830597672_9d1929026e_b.jpg?fit=1024%2C683&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/06\/49830597672_9d1929026e_b.jpg?fit=1024%2C683&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":241,"url":"https:\/\/www.jinhaihan.top\/WordPress\/%e5%9f%ba%e4%ba%8ekotlin%e5%92%8c%e6%90%ba%e7%a8%8b%e7%9a%84%e4%b8%80%e7%a7%8dretrofit%e5%b0%81%e8%a3%85\/","url_meta":{"origin":35,"position":4},"title":"\u57fa\u4e8eKotlin\u548c\u643a\u7a0b\u7684\u4e00\u79cdRetrofit\u5c01\u88c5","author":"Kim","date":"2023\u5e742\u670819\u65e5","format":false,"excerpt":"\u4e00\u3001\u5c01\u88c5\u6b65\u9aa4 \u76f4\u63a5\u4e0a\u4ee3\u7801\uff1a \u9996\u5148\u5f15\u5165\u76f8\u5173\u4f9d\u8d56\uff1a api 'com.squareup.ret\u2026","rel":"","context":"\u5728\u201cAndroid\u201d\u4e2d","block_context":{"text":"Android","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/android\/"},"img":{"alt_text":"Free network image","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/02\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvcHgxMDg5NTEyLWltYWdlLWt3dnkzcXdyLmpwZw.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/02\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvcHgxMDg5NTEyLWltYWdlLWt3dnkzcXdyLmpwZw.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/02\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvcHgxMDg5NTEyLWltYWdlLWt3dnkzcXdyLmpwZw.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2023\/02\/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvcHgxMDg5NTEyLWltYWdlLWt3dnkzcXdyLmpwZw.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":72,"url":"https:\/\/www.jinhaihan.top\/WordPress\/android%e7%94%b3%e8%af%b7usb%e6%9d%83%e9%99%90%e6%97%a0%e6%95%88%e7%9a%84%e4%b8%80%e7%a7%8d%e5%8f%af%e8%83%bd\/","url_meta":{"origin":35,"position":5},"title":"Android\u7533\u8bf7USB\u6743\u9650\u65e0\u6548\u7684\u4e00\u79cd\u53ef\u80fd","author":"Kim","date":"2021\u5e747\u67084\u65e5","format":false,"excerpt":"USB\u6743\u9650\u53ef\u4ee5\u5f39\u51fa\u7533\u8bf7\u6846\u7684\u5fc5\u8981\u6761\u4ef6\uff1a \u5728\u5bf9\u5e94\u7684\u6e05\u5355\u6587\u4ef6\u4e2d\u7533\u8bf7\u5fc5\u8981\u6743\u9650\u3002 \u52a8\u6001\u6216\u8005\u9759\u6001\u7533\u8bf7\u3002 \u5176\u4e2d\u7b2c\u4e8c\u2026","rel":"","context":"\u5728\u201cAndroid\u201d\u4e2d","block_context":{"text":"Android","link":"https:\/\/www.jinhaihan.top\/WordPress\/category\/bolg\/android\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/456536-scaled.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/456536-scaled.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/456536-scaled.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jinhaihan.top\/WordPress\/wp-content\/uploads\/2021\/10\/456536-scaled.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/posts\/35"}],"collection":[{"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":1,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":36,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/posts\/35\/revisions\/36"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/media\/123"}],"wp:attachment":[{"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jinhaihan.top\/WordPress\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}