我很擅长在C#中使用库WebClient,HttpResponse和HttpRequest,所以请耐心等待我的问题.
我需要构建一个基于C#的WinForm,它可以打开一个URL,该URL通过基本授权进行保护.我这样做是将它添加到标题中,如下所示:
using (WebClient wc = new WebClient())
{
wc.Headers.Add(HttpRequestHeader.Authorization, "Basic " +
Convert.ToBase64String(
Encoding.ASCII.GetBytes(username + ":" + password)));
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好!现在我想填写一个带有数字的表单,然后我从网站上找到源代码,并发现名称是"数字".所以我写这个:
NameValueCollection formData = new NameValueCollection();
formData["number"] = number
byte[] responseBytes = wc.UploadValues(theurl, "POST", formData);
string response = Encoding.ASCII.GetString(responseBytes);
textBox_HTML.Text = response;
Run Code Online (Sandbox Code Playgroud)
但是我该怎么提交呢?我想收到我的"搜索结果"......
BFr*_*ree 49
你可能应该HttpWebRequest为此而使用.这是一个简单的例子:
var strId = UserId_TextBox.Text;
var strName = Name_TextBox.Text;
var encoding=new ASCIIEncoding();
var postData="userid="+strId;
postData += ("&username="+strName);
byte[] data = encoding.GetBytes(postData);
var myRequest =
(HttpWebRequest)WebRequest.Create("http://localhost/MyIdentity/Default.aspx");
myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
var newStream=myRequest.GetRequestStream();
newStream.Write(data,0,data.Length);
newStream.Close();
var response = myRequest.GetResponse();
var responseStream = response.GetResponseStream();
var responseReader = new StreamReader(responseStream);
var result = responseReader.ReadToEnd();
responseReader.Close();
response.Close();
Run Code Online (Sandbox Code Playgroud)
小智 39
试试这个:
using System.Net;
using System.Collections.Specialized;
NameValueCollection values = new NameValueCollection();
values.Add("TextBox1", "value1");
values.Add("TextBox2", "value2");
values.Add("TextBox3", "value3");
string Url = urlvalue.ToLower();
using (WebClient client = new WebClient())
{
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] result = client.UploadValues(Url, "POST", values);
string ResultAuthTicket = System.Text.Encoding.UTF8.GetString(result);
}
Run Code Online (Sandbox Code Playgroud)