c# HttpWebRequest 發請求post 返回403forbidden

項目中需要使用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;

        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章