c# HttpWebResponse判断返回请求的问题
发布网友
发布时间:2022-08-20 06:42
我来回答
共3个回答
热心网友
时间:2023-11-01 15:07
没明白你什么意思给你一个我测试的代码吧
HttpReceiveData.aspx
///
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HttpReceiveData.aspx.cs" Inherits="HttpReceiveData" %>
HttpReceiveData.aspx.cs
///////
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class HttpReceiveData : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.Write("nihao" + Request.Form["Desc"] + Request.Form["Title"]);
Response.End();
////string c = Request.Form["nihao"].ToString();
//String a = Request.Form["Title"].ToString();
//String b = Request.Form["Desc"].ToString();
//Common d = new Common();
//d.ShowMessage(this, a + b);
}
}
HttpSendData.aspx
//
<%@ Page language="c#" %>
<%@ Import Namespace = "System" %>
<%@ Import Namespace = "System.Collections" %>
<%@ Import Namespace = "System.Web" %>
<%@ Import Namespace = "System.Web.UI" %>
<%@ Import Namespace = "System.Web.UI.WebControls" %>
<%@ Import Namespace = "System.Net" %>
<%@ Import Namespace = "System.IO" %>
<%@ Import Namespace = "System.Text" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<script type="text/C#" runat="server">
void Button1_Click(object sender, System.EventArgs e)
{
string strTitle = TextBox1.Text;
string strDesc = TextBox2.Text;
//Encoding encoding = Encoding.GetEncoding("GB2312");
//string postData = "Title=" + strTitle;
//string strUrl = "http://localhost/ht/HttpReceiveData.aspx";
//postData += ("&Desc=" + strDesc);
//byte[] data = encoding.GetBytes(postData);
//// 准备请求...
//HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
//myRequest.Method = "POST";
//myRequest.ContentType="application/x-www-form-urlencoded";
//myRequest.ContentLength = data.Length;
//Stream newStream=myRequest.GetRequestStream();
//// 发送数据
//newStream.Write(data,0,data.Length);
//newStream.Close();
CookieContainer cc = new CookieContainer();
string postData = "Title=" + strTitle;
//string strUrl = "http://localhost/ht/HttpReceiveData.aspx";
postData += ("&Desc=" + strDesc);
byte[] byteArray = Encoding.UTF8.GetBytes(postData); // 转化
HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create("http://localhost/ht/HttpReceiveData.aspx");
webRequest2.CookieContainer = cc;
webRequest2.Method = "POST";
webRequest2.ContentType = "application/x-www-form-urlencoded";
webRequest2.ContentLength = byteArray.Length;
Stream newStream = webRequest2.GetRequestStream();
// Send the data.
newStream.Write(byteArray, 0, byteArray.Length); //写入参数
newStream.Close();
HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();
long t = response2.ContentLength;
StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.Default);
string text2 = sr2.ReadToEnd();
Response.Redirect("HttpSendData.aspx");
}
</script>
</HEAD>
<body>
<form id="HTTPPost" method="post" runat="server">
标题:<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<br>
内容:
<br>
<asp:TextBox id="TextBox2" runat="server" TextMode="MultiLine" Rows="10" Columns="100"></asp:TextBox>
<br>
<asp:Button id="Button1" runat="server" Text=" 发 送 " onclick="Button1_Click"></asp:Button>
</form>
</body>
</HTML>
HttpSendData.aspx文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class HttpSendData : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
热心网友
时间:2023-11-01 15:07
晕倒,搞个功能贴那么长,其实很简单。
for (int i = 0; i < listBox1.Items.Count; i++)
{
req = (HttpWebRequest)WebRequest.Create(listBox1.Items[i].ToString() + "?action=login&usr=admin&pwd=admin");
res = (HttpWebResponse)req.GetResponse();
if(res.StatusCode == HttpStatusCode.Found){
//这里就跳转了,登录成功
}else{
//否则就读取内容
System.IO.StreamReader sr=new System.IO.StreamReader(res.GetResponseStream());
string content=sr.ReadToEnd(); //这里的content就是网页内容了
sr.Close();
//判断错误信息
if(content.IndexOf("用户名或密码错误")!=-1){
//用户名密码错误?
}else{
//其它信息
}
}
res.Close();
req.Abort();
System.Threading.Thread.Sleep(500);
}
注意一个问题,就是网页的编码问题,可能你需要调整new System.IO.StreamReader(res.GetResponseStream());这句话使用指定的编码来读取,否则可能会乱码。
热心网友
时间:2023-11-01 15:07
想实现啥功能?
c# HttpWebResponse判断返回请求的问题
string postData = "Title=" + strTitle;//string strUrl = "http://localhost/ht/HttpReceiveData.aspx";postData += ("&Desc=" + strDesc);byte[] byteArray = Encoding.UTF8.GetBytes(postData); // 转化 HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create("http://local...
如何处理C#的HttpWebResponse的GetResponse中的超时异常
//用多线程,超时程序会自动结束 // 获取服务器反馈结果 using (HttpWebResponse response = (HttpWebResponse)myReq.GetResponse()) { if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("返回结果错误!"); } else { StreamReader sr = new S...
如何处理C#的HttpWebResponse的GetResponse中的超时异常
服务器响应超时将抛出WebException异常,处理这个异常即可。处理的时候,可以通过的WebException的Response和Status属获取来自服务器返回的内容。不同类型服务器返回的内容有所不同,但通常是超时的具体原因。
C#语言怎样解决从网页上下HTML代码error403 Forbidden的问题
简单的方法是,判断返回的字符串中,是不是包含error 403 Forbidden就行了。
如何处理C#的HttpWebResponse的GetResponse中的超时异常
超时异常,可以设置请求对象的Timeout属性,设置长一点,另外,检查服务器后台是否有错误。报错可以用异常捕获 try { resp = (HttpWebResponse)req.GetResponse();} catch (WebException webEx){ //webEx.StatusEx.Status是错误的状态 if (webEx.Status == WebExceptionStatus.Timeout){//这里写处理...
c# .net 怎么判断 WebRequest 请求失败了 还是 成功了?
方法主要有2点:1.在GetResponse()超时后要重新发送请求;2.检查是否异常,捕获或抛掉异常。publicstring GetHtml(string URI) { string fullhtml=null;while(true) { try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI);req.Method ="GET";req.UserAgent ="Opera/9.25 (Windows...
C#使用HttpResponse resp = System.Web.HttpContext.Current.Response的...
aspx里面不需要这样子 直接Response就可以使用了 如果是自己创建那就用 HttpWebRequest Request = WebRequset.Create("http://www.fenglaijun.com") as HttpWebRquest;HttpWebResponse Response = Request.GetResponse() as HttpWebResponse;
c# httpwebrequest获取一个页面,但是他具有302重定向,返回不了正确的页...
HttpWebRequest 有个属性AllowAutoRedirect 把他设置false就可不跳转了 true就跳转。HttpWebResponse 在得到服务器返回信息时有一个属性headers,里面有要跳转的URL
C#如何利用HttpWebRequest来获取url的页面内容
request.UseDefaultCredentials = false;//获取或设置一个 System.Boolean 值,该值控制 System.Net.CredentialCache.DefaultCredentials WebResponse response = request.GetResponse();//返回对 Internet 请求的响应。Stream resStream = response.GetResponseStream();//返回从 Internet 资源返回数据流 Strea...
C# 判断网站是否能访问
catch表示连接不上。try { WebRequest myRequest = WebRequest.Create(" http://www.163.com");WebResponse myResponse = myRequest.GetResponse();myResponse.Close(); MessageBox.Show("连上了");} catch { MessageBox.Show("连不上");} 不过,网页打开是异步过程,应该再加个定时器。