如何使用C#中的HttpWebRequest类将标头和正文中的值传递给API的GET响应?

时间:2019-05-28 06:43:54

标签: c# api httpwebrequest bearer-token

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

  

HEADER
  授权:不记名
  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;
                }

但是它没有按预期工作。

0 个答案:

没有答案