Как добавить токен в метод HTTP Post в c #? - PullRequest
0 голосов
/ 20 марта 2019

Привет, ребята, это мой метод задачи, это метод http post, теперь я хочу добавить его Токен как

httpWebRequest.Headers["Authorization"] = "Some_Token";

так что я новичок и не знаюкак это сделать, может кто-нибудь мне помочь?

            Task t = Task.Run(async () =>
            {
                string GetReferralsByPersonalIdNumberURL = "http://somehost/api/Referral/GetExistingClaimsByReferralNumber";
                GetExistingClaimsByReferralNumberClass cust = new GetExistingClaimsByReferralNumberClass() { referralNumber = ReferalNumFromMedicine, pharmacyID = PharmacyIDFromMedicine, };
                var json = _Serializer.Serialize(cust);
                var response = await Request(HttpMethod.Post, GetReferralsByPersonalIdNumberURL, json, new Dictionary<string, string>());

               //  Request.Headers["Authorization"] = "SomeToken"; 
                string responseText = await response.Content.ReadAsStringAsync();

                da = convertJsonStringToDataset(responseText);
                // List<YourCustomClassModel> serializedResult = _Serializer.Deserialize<List<YourCustomClassModel>>(responseText);

                //  Console.WriteLine(da.GetXml());
                // Console.ReadLine();

            });
            t.Wait();

И этот метод request используется в [webmethod]

static async Task<HttpResponseMessage> Request(HttpMethod pMethod, string pUrl, string pJsonContent, Dictionary<string, string> pHeaders)
        {
            var httpRequestMessage = new HttpRequestMessage();
            httpRequestMessage.Method = pMethod;
            httpRequestMessage.RequestUri = new Uri(pUrl);
            foreach (var head in pHeaders)
            {
                httpRequestMessage.Headers.Add(head.Key, head.Value);
            }
            switch (pMethod.Method)
            {
                case "POST":
                    HttpContent httpContent = new StringContent(pJsonContent, Encoding.UTF8, "application/json");
                    httpRequestMessage.Content = httpContent;
                    break;

            }

            return await _Client.SendAsync(httpRequestMessage);
        }

Я думаю, что мне нужно изменить метод внутри запроса,а также я думаю, что я сделал это по-другому, надеюсь, вы, ребята, поймете, что я пытаюсь

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Звоните Request, как это

var headers = new Dictionary<string, string> {
    { "Authorization", "SomeToken" }
};

var response = await Request(HttpMethod.Post, GetReferralsByPersonalIdNumberURL, json, headers);
1 голос
/ 20 марта 2019

добавьте новый заголовок авторизации, как показано в цикле

 httpRequestMessage.Headers.Add("Authorization", $"Bearer {token}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...