403使用Webrequest的禁止错误但在邮递员中有效

编程入门 行业动态 更新时间:2024-10-23 08:39:00
本文介绍了403使用Webrequest的禁止错误但在邮递员中有效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个授权代码,我需要在调用api时使用一些标头值传入正文。当从邮递员那里尝试同样的工作时它的工作正常,但C#Webclient抛出403错误。

I have a Authorization code which i need to pass in body with some header value when calling a api. when trying the same from postman its working fine but C# Webclient throwing 403 error.

以下代码: -

public string GetResponse(string AuthCode) {

public string GetResponse(string AuthCode) {

string url =" example//openam/oauth2/access_token?grant_type = authorization_code& realm = / cbpgatqa" ;; Uri uri = new Uri(string.Format(url)); ASCIIEncoding encoding = new ASCIIEncoding(); string postData =" code =" + AuthCode +"& redirect_uri =" +" http:// localhost:8080"; byte [] data = Encoding.GetEncoding(" UTF-8")。GetBytes(postData); //创建请求 var httpWebRequest =(HttpWebRequest)WebRequest.Create(uri); httpWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; httpWebRequest.Headers.Add(HttpRequestHeader.Authorization," Basic" + AuthCode); httpWebRequest.ContentType =" application / json"; httpWebRequest.Method =" POST"; httpWebRequest.ContentLength = data.Length; httpWebRequest.UserAgent = @" Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 51.0.2704.106 Safari / 537.36" ;; Stream stream = httpWebRequest.GetRequestStream(); stream.Write(data,0,data.Length); stream.Close(); //获取回复 HttpWebResponse httpResponse = null; 试试 { httpResponse =(HttpWebResponse)httpWebRequest.GetResponse(); }¥b $ b catch(例外情况) { Console.WriteLine("获取资源时的异常"+"ex.Message"); 返回null; } string result = null; 使用(var streamReader = new StreamReader(httpResponse.GetResponseStream()))) { result = streamReader.ReadToEnd(); } 返回结果;

string url = "example//openam/oauth2/access_token?grant_type=authorization_code&realm=/cbpgatqa"; Uri uri = new Uri(string.Format(url)); ASCIIEncoding encoding = new ASCIIEncoding(); string postData = "code=" + AuthCode + "&redirect_uri=" + "localhost:8080"; byte[] data = Encoding.GetEncoding("UTF-8").GetBytes(postData); // Create the request var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri); httpWebRequest.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + AuthCode); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; httpWebRequest.ContentLength = data.Length; httpWebRequest.UserAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"; Stream stream = httpWebRequest.GetRequestStream(); stream.Write(data, 0, data.Length); stream.Close(); // Get the response HttpWebResponse httpResponse = null; try { httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); } catch (Exception ex) { Console.WriteLine("Exception while getting resource " + ex.Message); return null; } string result = null; using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } return result;

}

Postman Curl命令: -

Postman Curl command:-

从curl请求生成:

Generated from a curl request:

curl -X POST 'https://example//openam/oauth2/access_token?grant_type=authorization_code&realm=/cbpgatqa' -H '授权:基本MzE4OGQwYjQtZTRlOC00MTZjLTg5NjAtZDNlYWFhMmNjY2IxOkx3NiVBa0x4NWtPM01rJTJ5RWwxbW1jR0ZYZmhTQmk1NHhIRCpzNiUyVUd5WXN0MCNVbyNMNWQhcVlpZE93djc =' -H"缓存控制:无-cache' -H'内容类型:application / x-www-form-urlencoded' -d'code = 93317468-7464-4804-b38a-43e13265c4ac& redirect_uri = http%3A%2F%2F localhost%3A8080%2F'

curl -X POST 'example//openam/oauth2/access_token?grant_type=authorization_code&realm=/cbpgatqa' -H 'Authorization: Basic MzE4OGQwYjQtZTRlOC00MTZjLTg5NjAtZDNlYWFhMmNjY2IxOkx3NiVBa0x4NWtPM01rJTJ5RWwxbW1jR0ZYZmhTQmk1NHhIRCpzNiUyVUd5WXN0MCNVbyNMNWQhcVlpZE93djc=' -H 'Cache-Control: no-cache' -H 'Content-Type: application/x-www-form-urlencoded' -d 'code=93317468-7464-4804-b38a-43e13265c4ac&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F'

我无法弄清楚问题。任何人都可以帮助我

I am not able to figure it out the issue . Can anyone please help me

推荐答案

您好Kumar93,

Hi Kumar93,

感谢您发布此处。

根据我的搜索,您可以通过以下两种方式来解决403 Forbidden。

Based on my search, here are two ways for your reference to solve 403 Forbidden.

stackoverflow/questions/3272067/webclient-403-禁止

stackoverflow/questions/2794260/webclient-the-remote-server-returned-an-error-403-forbidden

最诚挚的问候,

Wendy

更多推荐

403使用Webrequest的禁止错误但在邮递员中有效

本文发布于:2023-10-29 08:03:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1539159.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:邮递员   但在   错误   Webrequest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!