Отправить POST запрос с JSON телом C#

735
27 августа 2017, 02:05

Как отправить запрос я разобрался (использую библиотеку xNet), а как изменить его тело нет, дайте пример с использованием xNet или стандартных методов. Ниже пример запроса, это QIWI API, если что. Спасибо.

Вот код, который отправляет запрос:

private void button21_Click(object sender, EventArgs e) 
        { 
            using (var request = new HttpRequest()) 
                          { 
 
                              var urlParams = new RequestParams(); 
 
                              request.AddHeader("Accept", "application/json"); 
                              request.AddHeader("Content-Type:", "application/json"); 
                              request.AddHeader("Authorization", "Bearer " + textBox56.Text); 
 
 
               
                              string content = request.Post("https://edge.qiwi.com/sinap/api/v2/terms/99/payments", urlParams).ToString(); 
                              textBox58.Text = content; 
 
 
                 
 
                          }

Answer 1

Пример не с библиотекой xNet , может быть поможет

  var stringContent = new StringContent("putJsonThere", Encoding.UTF8, "application/json");
  var response = await new HttpClient().PostAsync(url?param1=1&param2=2, stringContent);
Answer 2

Можно как то так:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = serializer.Serialize(new { id = 123, sum = new { amount = 0, currency = 643 } });
var response = request.Post(address, json, contentType)

Сериализовать можно что захотите

Answer 3

с xnet будет примерно так

request.Useragent = "";
request.AddHeader("Authorization", "Bearer " + textBox56.Text);
string json = "{\"id\":\"11111111\",\"sum\":{\"amount\":10.50, \"currency\":\"643\"},.........}";
string content = request.Post("https://edge.qiwi.com/sinap/api/v2/terms/99/payments", json,"application/json").ToString();

т.к картинка, а не код, то мне было лень все переписывать, но ты понял суть, все в одну строку записывай без переходов, а перед кавычкой ставь слэш \

READ ALSO
Передать в делегат Func динамический тип

Передать в делегат Func динамический тип

В качестве аргумента у метода нужен делегат Func в котором первый параметр - Type не известен:

245
Получение guid из .asset файла

Получение guid из .asset файла

Имеется файл с расширениемasset

256
Можно ли запихнуть в ProgressBar.Step значение типа Double?

Можно ли запихнуть в ProgressBar.Step значение типа Double?

Можно ли запихнуть в ProgressBarStep значение типа Double

296
Когда выполнять Dispose контекста?

Когда выполнять Dispose контекста?

Читаю код одного web-приложения (ASPNET MVC)

241