我请求一个接口 需要进行权限验证 增加请求头参数。
前端的请求头是这样加的:
public string HttpRequest(string parameters)
{
string StrKey;
var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters);
request.Method = Method.ToString();
request.ContentLength = 0;
request.ContentType = ContentType;
request.Accept = ContentType;
request.KeepAlive = true;
request.Timeout = TimeOut;
if (!string.IsNullOrEmpty(PostData) && Method == EnumHttpVerb.POST)
{
var bytes = Encoding.UTF8.GetBytes(PostData);
request.ContentLength = bytes.Length;
StrKey= "\"AccessToken\":\"c3d10102cd3149d6ade726fc2c5dd8e2\",\"CallSystemCode\":\"ACT\"";
byte[] b = System.Text.Encoding.Default.GetBytes(StrKey);
string UserEncoding = Convert.ToBase64String(b);
request.Headers.Add("EsbHead ", UserEncoding);
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
}
}
using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
if (response.StatusCode != HttpStatusCode.OK)
{
var message = string.Format("请求数据失败. 返回的 HTTP 状态码:{0}", response.StatusCode);
throw new ApplicationException(message);
}
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
return responseValue;
}
}
抛出异常:
指定的值含有无效的 HTTP 标头字符。
参数名: name
转换为base64的格式
请求成功 不返回401的权限验证异常
请求头需要urlencode