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();
}
}
}
如果您必须在请求中添加基本身份验证而无需等待挑战,您可以手动添加头:
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();