C# Парсинг таблицы и формирование JSON (HtmlAgilityPack => Json => POST)

Nastroycpa

Client
Регистрация
26.07.2018
Сообщения
22
Благодарностей
0
Баллы
1
Здравствуйте.

Задача: спарсить таблицу с сайта, передать данные методом POST на другой сайт на PHP скрипт.


парсим:
string PageHtml = instance.ActiveTab.GetSourceText("UTF-8");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(PageHtml);

var t1 = doc.DocumentNode.SelectNodes(@"//tbody//tr//td[2]");
var t2 = doc.DocumentNode.SelectNodes(@"//tbody//tr//td[4]");
Как то можно сразу спарсить в двумерный массив?

По сути на PHP скрипт надо передать данные такого двумернго массива, единственный способ вижу - через post + json
Как из t1 и t2 получить json?


отправка:
string data = "{\"id1\":\"name1\",\"id2\":\"name2\"}";


string resRequest = ZennoPoster.HttpPost(
    "https://xxxxx.xxx/api.php",
    data,
    "application/json",
    string.Empty,
    "UTF-8",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly

);
Отправка тоже не работает PHP скрипт не получает ничего(пустой массив)

api.php:
print_r($_POST);
var_dump($_POST);
var_dump(json_decode($_POST));
 
Последнее редактирование:
Регистрация
05.06.2019
Сообщения
570
Благодарностей
453
Баллы
63
Парсить в Dictionary, потом сериализавать и отправить
C#:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add(key, value);

string jsonString = JsonSerializer.Serialize(dict);
 
  • Спасибо
Реакции: Nastroycpa и Astraport

Nastroycpa

Client
Регистрация
26.07.2018
Сообщения
22
Благодарностей
0
Баллы
1
Парсить в Dictionary, потом сериализавать и отправить

C#:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("id1", "Name1");
dict.Add("id2", "Name2");

string jsonString = JsonSerializer.Serialize(dict);
Получаю ошибку: Ни одна из перегрузок метода "Serialize" не принимает "1" аргументов

Как я понимаю не хватает второго аргумента JsonSerializer.Serialize Метод как правильно?
Подключал и так и так, результат тот же.

C#:
using Global.ZennoLab.Json;
using Global.ZennoLab.Json.Linq;
using Global.ZennoLab.Json.Serialization;

и

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
UPD

использовал JsonConvert.SerializeObject и заработало

может кому пригодится, на стороне сервера получаем через

PHP:
$postData = file_get_contents('php://input');
$data = json_decode($postData, true);
var_dump($data);
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)