c # отправка запроса с использованием httpparams и заголовков - PullRequest
0 голосов
/ 02 ноября 2019

У меня было клиентское приложение, написанное на английском языке, которое отправляет запросы на connect/token

 const body = new HttpParams()
      .set('username', email)
      .set('password', password)
      .set('grant_type', "password")
      .set('scope', "offline_access");
    const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');

    return this.http.post<any>(this._baseAuthUrl + 'connect/token', body, { headers })

Теперь я должен написать это на c #, но застрял с какой-то частью

HttpClient httpClient = new HttpClient();  
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "http://mysite/connect/token");  
requestMessage.Headers.Add("Content-Type", "application/x-www-form-urlencoded");  

Как мне добавить HttpParams и правильно отправить запрос, пожалуйста?

1 Ответ

0 голосов
/ 02 ноября 2019

Вот код.

    var httpClient = new HttpClient();

    var pairs = new List<KeyValuePair<string, string>>
                       {
                           new KeyValuePair<string, string>("username", email),
                           new KeyValuePair<string, string>("password", password),
                           new KeyValuePair<string, string>("grant_type", "password"),
                           new KeyValuePair<string, string>("scope", "offline_access")
                        };

    var content = new FormUrlEncodedContent(pairs);

    HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "http://mysite/connect/token");
    requestMessage.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    requestMessage.Content = content;
    var response = await httpClient.SendAsync(requestMessage);

Приведенный выше код является лишь примером для ответа на вопрос. Но в вашей реализации вы должны использовать статический HttpClient и сразу его инициализировать. Читать дальше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...