簡體   English   中英

如何在C#中將令牌添加到HTTP Post方法中?

[英]How to add Token into HTTP Post method in c#?

大家好,這是我的任務方法,它是http發布方法,現在我想將其添加為令牌

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();

這是[webmethod]中使用的request方法

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);
        }

我認為我必須更改內部請求方法,而且我認為我以另一種方式做到了,希望你們能理解我的嘗試

像這樣在循環中添加一個新的Authorization標頭

 httpRequestMessage.Headers.Add("Authorization", $"Bearer {token}");

這樣的通話Request

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

var response = await Request(HttpMethod.Post, GetReferralsByPersonalIdNumberURL, json, headers);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM