TRpcFunction – постим в блог WordPress (XML-RPC)

XML-RPC расшифровывается как Remote Procedure Call – удаленный вызов процедур с помощью XML. Блогу, работающему под WordPress, не забудьте дать разрешение на использование протокола XML-RPC в административной панели.
Приведенный ниже код (является основной частью программы) отвечает непосредственно за отправку поста в блог. Использует модули из библиотеки XML-RPC (положил ее сырцы в /../sources). Заголовок поста находится в переменной PostTitle, а содержание – в MemoSrc.Text (TMemo), который передается как параметр description через RPCStruct.AddItem.

P. S. Рекомендую ознакомиться с исходными кодами программы blogBuddy
Also, см. Создаем Drupal-страницы из C# (XML-RPC “node.save”)

Discussion

Uchla
07.02.2004
Парсинг (parsing) JSON данных из Lazarus с помощью "встроенного" модуля fpJSON. Предположим, что у нас есть такой JSON-ответ сервера в HttpGet_response:
{
   "Hello" : [
      "here",
      {
         "There" : 456;
      }
   ],
   "World" : 123
}
uses
  jsonparser, fpjson;
...
procedure ParseSomeData();
var
  P: TJSONParser;
  J, D: TJSONData;
  HttpGet_response: string;
begin
  P := TJSONParser.Create(HttpGet_response);
  J := P.Parse;
  WriteLn(J.AsJSON); // Вывод содержимого "как есть"
  WriteLn(J.Items[0].Count); // Количество ветвей в дереве JSON
  D := J.Items[0].Items[1]; // Для удобства работы
  WriteLn(J.Items[0].Items[1].Count); // Например, количество объектов в первой ветке
  WriteLn(TJSONObject(J).Names[0]); // Имя первого объекта
  WriteLn(TJSONObject(D).Elements['familiya'].Value); // Получение значения по имени поля
end;
Uchla
07.02.2004
Не получается отправить в терминальную сессию нажатие клавиши используя keybd_event? В таком случае необходимо использовать SendInput (в примере отправляется буква "a"):
var
  Inputs: array of TInput;
  ScanCode: Word;
begin
  ScanCode := MapVirtualKey($41, 0);
  SetLength(Inputs, 2);
  Inputs[0].iType := INPUT_KEYBOARD;
  Inputs[0].ki.wVk := $41;
  Inputs[0].ki.wScan := ScanCode;
  Inputs[1].iType := INPUT_KEYBOARD;
  Inputs[1].ki.wVk := $41;
  Inputs[1].ki.wScan := ScanCode;
  Inputs[1].ki.dwFlags := KEYEVENTF_KEYUP;
  SendInput(2, Inputs[0], SizeOf(Inputs[0]));

Җавап калдыру



All fields are required. Your email address will not be published.