首页 > 解决方案 > 如何使用 C# 中的 HttpWebRequest 类将标头和正文中的值传递给 API 的 GET 响应?

问题描述

如何使用 C# 中的 HttpWebRequest 类将值传递给标头和 PATH PARAMETERS 部分以从 API 获取响应?

HEADER
授权:Bearer
UserId:用户id

路径参数
recid:记录 id

波纹管代码是我尝试过的..

 HttpWebRequest MetadataRequest = (HttpWebRequest)WebRequest.Create(metadatarequestUri);
                MetadataRequest.ContentType = "multipart/form-data; boundary=" + boundary;
                MetadataRequest.Method = "GET";
                MetadataRequest.KeepAlive = true;
                MetadataRequest.Headers.Add("Authorization", "Bearer " + AccessTokenValue);
var recid = "00482365-91c4-g416d-b8a1-06agfga8bcfe8ee";
var AccessTokenValue = "8a2fyhfgc-43f1-4b9e-b64a-dca79grdgedr75642";
var userId = "ka.san";
var metadatarequestUri="https://webserverdev.demovision.com:8493/demoecmv2/rest/docs/" + recid + "/attachments";
 Stream memStream2 = new System.IO.MemoryStream();
                if (formFields != null)
                {
                    foreach (string key in formFields.Keys)
                    {
                        string formitem = string.Format(formdataTemplate, key, formFields[key]);
                        byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
                        memStream2.Write(formitembytes, 0, formitembytes.Length);
                    }
                }
memStream2.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                MetadataRequest.ContentLength = memStream2.Length;
                using (Stream requestStream = MetadataRequest.GetRequestStream())
                {
                    memStream2.Position = 0;
                    byte[] tempBuffer = new byte[memStream2.Length];
                    memStream2.Read(tempBuffer, 0, tempBuffer.Length);
                    memStream2.Close();
                    requestStream.Write(tempBuffer, 0, tempBuffer.Length);
                }
memStream2.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
                MetadataRequest.ContentLength = memStream2.Length;
                using (Stream requestStream = MetadataRequest.GetRequestStream())
                {
                    memStream2.Position = 0;
                    byte[] tempBuffer = new byte[memStream2.Length];
                    memStream2.Read(tempBuffer, 0, tempBuffer.Length);
                    memStream2.Close();
                    requestStream.Write(tempBuffer, 0, tempBuffer.Length);
                }
using (var response = MetadataRequest.GetResponse())
                {
                    Stream stream2 = response.GetResponseStream();
                    StreamReader reader2 = new StreamReader(stream2);
                    var uploadedFileResponseFromAltusECM = reader2.ReadToEnd();
                    dynamic obj = JsonConvert.DeserializeObject(uploadedFileResponseFromAltusECM);
                    recid = obj.messages[0].message;
                }

但它没有按预期工作。

标签: c#apihttpwebrequestbearer-token

解决方案


推荐阅读