awaisshabir Ответов: 1

Как вызвать web api с помощью C#


я вызываю ExpertTexting Api для отправки SMS, но мой метод get работает нормально, когда я пытаюсь отправить сообщение с помощью post its show invalid paramenter. ниже приведен мой метод post

частная статическая строка BaseUrl = "https://www.experttexting.com/ExptRestApi/sms/json//Message/Send";
ВАР сведения = "?имя пользователя=" + логин + "&усилителя;пароль=" + пароль + "&амп;api_key=" + значение apiKey + "&амп;с=" + с + "&амп;к=" + к + "&амп;текст=" + текст + "&амп;тип=текст";

использование (VAR client = new HttpClient())
{
var serializedProduct = JsonConvert. SerializeObject(data);
var content = new StringContent(serializedProduct, Encoding.UTF8, " application/json");
ответ = ожидание клиента.PostAsJsonAsync(базовый, контент);
}

Что я уже пробовал:

частная статическая строка BaseUrl = "https://www.experttexting.com/ExptRestApi/sms/json//Message/Send";
ВАР сведения = "?имя пользователя=" + логин + "&усилителя;пароль=" + пароль + "&амп;api_key=" + значение apiKey + "&амп;с=" + с + "&амп;к=" + к + "&амп;текст=" + текст + "&амп;тип=текст";

использование (VAR client = new HttpClient())
{
var serializedProduct = JsonConvert. SerializeObject(data);
var content = new StringContent(serializedProduct, Encoding.UTF8, " application/json");
ответ = ожидание клиента.PostAsJsonAsync(базовый, контент);
}

Afzaal Ahmad Zeeshan

Затем, пожалуйста, проверьте, какого рода или параметров они ожидают?

Richard MacCutchan

Похоже, вы отправляете недопустимый параметр.

1 Ответов

Рейтинг:
1

Richard Deeming

Вы путаете несколько способов отправки данных:

  • То data строка содержит application/x-www-form-urlencoded данные:
    ?username=...&type=text
  • Вы тогда позвоните JsonConvert.SerializeObject чтобы преобразовать эту строку в JSON:
    "?username=...&type=text"
  • Вы тогда позвоните PostAsJsonAsync, который будет JSON-кодировать данные снова:
    "\"?username=...&type=text\""

Вам нужно будет ознакомиться с документацией API, чтобы узнать, как вы должны передавать данные. На первый взгляд, это должно выглядеть примерно так:
using (var client = new HttpClient())
{
    response = await client.PostAsJsonAsync(BaseUrl, new
    {
        username,
        password,
        api_key = apikey,
        from,
        to,
        text,
        type = "text"
    });
}