【问题标题】:c# post request using httpparams and headersc# 使用 httpparams 和 headers 发布请求
【发布时间】:2019-11-01 23:19:20
【问题描述】:

我有一个客户端应用程序,它是用 Angular 编写的,可以将请求发布到 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 并正确发布请求?

【问题讨论】:

标签: c# httpclient


【解决方案1】:

这里是代码。

    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 static 并立即对其进行初始化。 Read more

【讨论】:

    猜你喜欢
    • 2020-07-11
    • 2022-01-18
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多