HTTP Basic Authentication认证
后台填写用户名和密码模拟登录
private void Form1_Load(object sender, EventArgs e)
{
string ReadJson = "";
StreamReader reader = null;
WebResponse wr = null;
try
{
string username = "lisa";
string password = "123";
WriteLog("step_DOA_CTC +" + "_" + username + "_lisa" + password + "+", "NewPRPOlisa0");
string url = "https://xxx.xx.xx.xx/xx/xx/xx?x=43264";
//如果总是报错401,将你的url的http改为https 试下
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(username + ":" + password)));
wr = request.GetResponse();
Stream receiveStream = wr.GetResponseStream();
reader = new StreamReader(receiveStream, Encoding.UTF8);
}
catch (Exception ex)
{
WriteLog("step+" + "_" + ex.Message, "NewPRPOlisaSaleEX");
WriteLog("" + ex.StackTrace, "NewPRPOlisaSaleEX1");
}
ReadJson = reader.ReadToEnd();
WriteLog("step_DOA_CTC +" + "_" + ReadJson, "NewPRPOlisaSale");
if (wr != null)
{
wr.Close();
}
}
public void WriteLog(string logStr, string logname)
{
try
{
string sFilePath = "D:\\lisa";
string sFileName = logname + ".txt";
sFileName = sFilePath + @"\\" + sFileName; // '文件的绝对路径
if (!Directory.Exists(sFilePath))
{ // 不存在则创建
Directory.CreateDirectory(sFilePath);
}
System.IO.File.AppendAllText(sFileName, System.DateTime.Now + ":" + logStr + System.Environment.NewLine, Encoding.Default);
}
catch (Exception ex)
{
}
}
其他 HTTP请求
/// <summary>
/// 请求网络资源,返回响应的文本
/// </summary>
/// <param name="url">网络资源地址</param>
public static string HttpWebRequest(string url)
{
return HttpWebRequest(url, string.Empty, Encoding.GetEncoding("utf-8"));
}
/// <summary>
/// 请求网络资源,返回响应的文本
/// </summary>
/// <param name="url">网络资源Url地址</param>
/// <param name="parameters">提交的参数,格式:参数1=参数值1&参数2=参数值2</param>
public static string HttpWebRequest(string url, string parameters)
{
return HttpWebRequest(url, parameters, Encoding.GetEncoding("utf-8"), true);
}
/// <summary>
/// 请求网络资源,返回响应的文本
/// </summary>
/// <param name="url">网络资源地址</param>
/// <param name="parameters">提交的参数,格式:参数1=参数值1&参数2=参数值2</param>
/// <param name="encoding">字符编码</param>
/// <param name="isPost">是否Post提交</param>
/// <param name="contentType">内容类型</param>
/// <param name="cookie">Cookie容器</param>
/// <param name="timeout">超时时间</param>
public static string HttpWebRequest(string url, string parameters, Encoding encoding, bool isPost = false,
string contentType = "application/x-www-form-urlencoded", CookieContainer cookie = null, int timeout = 120000)
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Timeout = timeout;
request.CookieContainer = cookie;
if (isPost)
{
byte[] postData = encoding.GetBytes(parameters);
request.Method = "POST";
request.ContentType = contentType;
request.ContentLength = postData.Length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(postData, 0, postData.Length);
}
}
var response = (HttpWebResponse)request.GetResponse();
string result;
using (Stream stream = response.GetResponseStream())
{
if (stream == null)
return string.Empty;
using (var reader = new StreamReader(stream, encoding))
{
result = reader.ReadToEnd();
}
}
return result;
}