c# HttpWebRequest 发请求post 返回403forbidden

在项目中通过GitHub RESTful API进行fork、commit和pull request操作时,遇到使用HttpWebRequest发送POST请求返回403 Forbidden的问题。经过分析,问题出在身份验证上。解决方案是设置UserAgent属性,例如:httpRequest.UserAgent = "Code Sample Web Client"。确保遵循GitHub API的授权规定。
部署运行你感兴趣的模型镜像

项目中需要使用GitHub 的restful API来fork, commit, pull request.

在使用HttpWebRequest来Post请求时设置了正确的Header和Body但是返回403Forbidden错误

解决方案:增加获取身份验证信息

 httpRequest.UserAgent = "Code Sample Web Client"

GitHub for API: https://developer.github.com/v3/repos/forks/#create-a-fork

public static async Task PullRequestAsync()
        {
            string url_fork = @"https://api.github.com/repos/OWNERNAME/REPO_YOU_WANT/forks";

            string res = Post(url_fork, "");//如果是organization调用需要加参数
            Console.WriteLine(res);
        }

        public static string Post(string url, string content)

        {

            string result = "";

            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

            req.Method = "POST";
            //req.Headers.Add("ContentType", "application/vnd.github.v3+json");
            req.Headers.Add("Authorization", "token *********");
            req.UserAgent = "Code Sample Web Client";

            //byte[] data = Encoding.UTF8.GetBytes(content);
            //req.ContentLength = data.Length;

            //using (Stream reqStream = req.GetRequestStream())

            //{

            //    reqStream.Write(data, 0, data.Length);

            //    reqStream.Close();

            //}

            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

            Stream stream = resp.GetResponseStream();           

            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))

            {

                result = reader.ReadToEnd();

            }

            return result;

        }

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值