HTTP GET请求的用户名&密码

本文关键字:密码 用户 GET 请求 HTTP | 更新日期: 2023-09-27 17:51:11

这是我第一次尝试创建一个可以发出HTTP GET请求并打印对console的响应的console app

到目前为止,代码工作,但仅适用于URIs,不需要username/password

我的最终目的是使用一个cloud/hosting API,它接受HTTP GET请求作为触发器采取某些行动。因此,我必须使用username/password

using System;
using System.Net;
using System.IO;
namespace HttpTestProject {
    class Program {
        static void Main(string[] args) {
            Uri uri = new Uri("http://www.google.com");
            string username = "asdf";
            string password = "asdf";
            NetworkCredential cred = new NetworkCredential(username, password);
            CredentialCache cache = new CredentialCache();
            cache.Add(uri, "Basic", cred);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream resStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(resStream);
            string text = reader.ReadToEnd();
            Console.WriteLine(text);
            Console.ReadLine();
        }
    }
}

HTTP GET请求的用户名&密码

如果您必须在请求中添加基本身份验证而无需等待挑战,您可以手动添加头:

var request = WebRequest.Create("http://myserver.com/service");
string authInfo = userName + ":" + userPassword;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
//like this:
request.Headers["Authorization"] = "Basic " + authInfo;
var response = request.GetResponse();