سؤال

أحاول استخدامها أباتشي XMLRPC لإدارة المشاركات في خدمة مدونة صغيرة.الدعم ليس رائعًا هناك ولا يمكنهم المساعدة حقًا.يقولون أن مدونة الويب تدعم Metaweblog API.

أحاول استرداد جميع مشاركاتي باستخدام RPC "metaWeblog.getPost":

token = client.invoke("metaWeblog.getPost", new Object[] {123, // also tried "123" and "\"123\""
                                                          "username", 
                                                          "password"});

عندما أستخدم 123 (بدون علامات الاقتباس)، أحصل على هذا الرد: java.lang.الاستثناء:لا يمكن تحويل java.lang.Integer إلى java.lang.String

عندما أستخدم "123" أو "\"123\"" (علامتي الاقتباس)، أحصل على هذا الرد: java.lang.الاستثناء:تنسيق postid غير صالح:123

يعمل هذا الرمز مع مدونة الويب الخاصة بـ Wordpress.

هل كانت مفيدة؟

المحلول

من المحتمل أن يعمل Wordpress لأنه موجود بلغة PHP وليس حساسًا للكتابة مثل Java.

تشير مستندات metaWeblog إلى أن تمثيل XML الأولي للطلب يبدو كما يلي:

<?xml version="1.0"?>

<methodCall>

    <methodName>metaWeblog.getPost</methodName>

    <params>

        <param>

            <value><i4>1829</i4></value>

            </param>

        <param>

            <value>Bull Mancuso</value>

            </param>

        <param>

            <value><base64>bm93YXk=</base64></value>

            </param>

        </params>

    </methodCall>

لذلك تحتاج إلى محاولة إنشاء المعلمات كمتغيرات من النوع الصحيح

يجب أن يكون معرف البريد 32 عددًا صحيحًا كبيرًا، وكلمة المرور مشفرة بـ base64، واسم المستخدم عبارة عن سلسلة.

أعلن عن متغيراتك بشكل صحيح وقم بتمرير المتغيرات، وليس الثوابت المقتبسة، إلى طريقة الاستدعاء.

بعد ذلك، سيتأكد ملف XML الذي تم تكوينه تحت الغطاء بواسطة مكتبة RPC من ذلك <i4></i4> موجود حول معرف المنشور، وما إلى ذلك.

آمل أن يساعد هذا قليلا.على أقل تقدير، يمكنك إثبات أن الجانب الآخر لا ينفذ metaWeblog بشكل صحيح.في أحسن الأحوال، تكون قد قمت بحل مشكلتك ويمكنك الاستمرار في التحرك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top