c# - 如何使用 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;
}
但它没有按预期工作。
解决方案
推荐阅读
- ruby - Ruby:如何遍历数据库记录以返回真正的键/值对
- javascript - 提升如何应用于此 JavaScript 代码?
- javascript - 为什么 Chrome 没有收到我的 cookie?
- r - 如何从与现有数据集不匹配的变量创建新数据表
- react-native - 当 TextInput 获得焦点时,按钮不接收 onPress 事件
- javascript - Array.toString() 返回数组而不是字符串 - 为什么?Javascript
- python - QClipboard.mimedata() 总是有黑色背景
- javascript - 检测浏览器推送通知已启用并显示警报
- swift - 如何阻止 MOYA/Alamfire 转义我的身体 json 参数?
- mysql - SQL 中的 SUBQUERIES 与 2 关系 1:n