Отправить json в post запросе через c#

xoffer

Client
Joined
Jan 27, 2011
Messages
88
Reaction score
7
Points
8
105039
Этот запрос из кубика пытаюсь переделать на c#.
105040

Как нужно прописать эту строку, что экранировать и как, не могу разобраться. Форум читал, гугл листал.
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,790
Reaction score
5,694
Points
113
надо не форум читать, а учебник по C#
вот по строкам. https://metanit.com/sharp/tutorial/2.25.php
ну и дальше читай, про экранирование.

а... и еще макросы зенки в виде {-что то тут-} нельзя использовать в C#
 

Sherminator

Client
Joined
Sep 10, 2021
Messages
1,024
Reaction score
544
Points
113
Вот так, надо стринг формат использовать
Code:
string s = String.Format("It is now {0} at {1}", переменная0, переменная1);
 

xoffer

Client
Joined
Jan 27, 2011
Messages
88
Reaction score
7
Points
8
Ок. Экранировал строку.
"{\"description\": \"{Variable.img_title}\",\"alt_text\": \"{Variable.img_title}\",\"title\": \"{Variable.img_title}\"}" .

Как теперь в нее вставить переменные из zenno?

105050
 

Sherminator

Client
Joined
Sep 10, 2021
Messages
1,024
Reaction score
544
Points
113
Сверху же все написано как и что, код нормально скинь, а не скрином
 

xoffer

Client
Joined
Jan 27, 2011
Messages
88
Reaction score
7
Points
8
Сверху же все написано как и что, код нормально скинь, а не скрином
Ок. вот кодом. Но получаю в логе:
Подпроект Posting_api. Выполнение действия CSharp OwnCode. Входная строка имела неверный формат.



C#:
string domen = project.Variables["wp_domen"].Value;
string id = project.Variables["wp_image_id"].Value;
string title = project.Variables["img_title"].Value;
string pass64 = project.Variables["wp_login_pass_64"].Value;
string content = string.Format ("{\"description\": \"{0}\",\"alt_text\": \"{0}\",\"title\": \"{0}\"}",title);
project.SendInfoToLog (content);
 

Sherminator

Client
Joined
Sep 10, 2021
Messages
1,024
Reaction score
544
Points
113
C#:
string content = string.Format ("\"description\": \"{0}\",\"alt_text\": \"{0}\",\"title\": \"{0}\"", title);
project.SendInfoToLog ("{"+ content +"}");
 
Last edited:
  • Thank you
Reactions: xoffer

xoffer

Client
Joined
Jan 27, 2011
Messages
88
Reaction score
7
Points
8
Спасибо , получилось. Собрал запрос для отправки в Wordpress новых тайтл, деск и альт для картинки.
C#:
string domen = project.Variables["wp_domen"].Value; // домен вида https://домен.ру
string id = project.Variables["wp_image_id"].Value; // id фото в библиотеке
string title = project.Variables["img_title"].Value; // title  для картинки
string pass64 = project.Variables["wp_login_pass_64"].Value;
//string content = string.Format ("\"description\": \"{0}\",\"alt_text\": \"{0}\",\"title\": \"{0}\"", title);
string content = $"\"description\": \"{title}\",\"alt_text\": \"{title}\",\"title\": \"{title}\""; // json запрос
string[] headers = new[]
{
   "Authorization:Basic " + pass64
};
// project.SendInfoToLog ("{"+ content +"}");


string response = ZennoPoster.HTTP.Request
    (
    InterfacesLibrary.Enums.Http.HttpMethod.POST,
    url: $"{domen}/wp-json/wp/v2/media/{id}",
    content:"{"+content+"}",
    contentPostingType: "application/json",
    UserAgent: project.Profile.UserAgent,
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
    AdditionalHeaders: headers
    );

if (!response.Contains("200 OK")) //проверка на содержание в response данных из скобок
    
        throw new Exception($"Ошибка в ответе \n{response}"); // вывод при ошибке
//return response;
 
  • Thank you
Reactions: Respect

Respect

Client
Joined
Dec 26, 2015
Messages
18
Reaction score
3
Points
3
Спасибо , получилось. Собрал запрос для отправки в Wordpress новых тайтл, деск и альт для картинки.
Подскажите, пожалуйста, можно ли через POST-запрос при загрузке картинки сразу передать атрибут alt, заголовок, подпись и её описание? Если да, то как это сделать, поделитесь информацией.
 

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)