使用
string cstr=this.getUrltoHtml(url);
this.WriteFile(cstr,name);
Response.Write("ok");
调用函数
函数:
//得到指定url页面的源码
public string getUrltoHtml(string Url)
{
string str = string.Empty;
try
{
WebRequest wReq = WebRequest.Create(Url);
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, code);
str = reader.ReadToEnd(); }
catch//(Exception ex)
{
Response.Write("no1");
}
return str;
} //写文件
public bool WriteFile(string str, string OutFile )
{ StreamWriter sw = null;
string Head = string.Empty;
// 写文件
try
{
if ( str.Length > 0 )
{
sw = new StreamWriter(OutFile , false, code);
sw.Write( str);
sw.Flush();
}
}
catch
{
Response.Write("no2");
}
finally
{
if ( sw != null )
sw.Close();
}
return true;
}
但是调试时,没有提示任何错误,也无法生成html。运行后,"ok"能正常输出
请问什么原因,要如何改啊
string cstr=this.getUrltoHtml(url);
this.WriteFile(cstr,name);
Response.Write("ok");
调用函数
函数:
//得到指定url页面的源码
public string getUrltoHtml(string Url)
{
string str = string.Empty;
try
{
WebRequest wReq = WebRequest.Create(Url);
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, code);
str = reader.ReadToEnd(); }
catch//(Exception ex)
{
Response.Write("no1");
}
return str;
} //写文件
public bool WriteFile(string str, string OutFile )
{ StreamWriter sw = null;
string Head = string.Empty;
// 写文件
try
{
if ( str.Length > 0 )
{
sw = new StreamWriter(OutFile , false, code);
sw.Write( str);
sw.Flush();
}
}
catch
{
Response.Write("no2");
}
finally
{
if ( sw != null )
sw.Close();
}
return true;
}
但是调试时,没有提示任何错误,也无法生成html。运行后,"ok"能正常输出
请问什么原因,要如何改啊
解决方案 »
- 关于ASP。net mvc 2 Url参数问题
- 解释代码根本意思
- 求助:在vs.net 2005里看不到代码段管理器
- 在后台代码中,如果实现,用JS将一张图片输出到界面并实现浮动效果
- 请问:用C#后台程序给GridView增加一个CheckBox列表头怎么加?
- 如何防止别人使用我的dll
- 用户代码未处理 System.Data.SqlClient.SqlException
- DataGrid里怎么加图片呀?
- 在前台怎么读取Datagrid中的控件的值?高手请进,解决了马上结分
- vs2003打开项目只加载了类文件
- 高手救命啊!无刷新联动DrowDownList取值问题!急……在线等!!
- 如何把XML串作为Treeview的数据源?
public string getUrltoHtml(string Url)
{
string str = string.Empty; try
{
WebRequest wReq = WebRequest.Create(Url);
WebResponse wResp = wReq.GetResponse();
Stream respStream = wResp.GetResponseStream();
StreamReader reader = new StreamReader(respStream, code);
str = reader.ReadToEnd();
return str;
}
catch//(Exception ex)
{
Response.Write("no1");
}
return "";
}
public bool WriteFile(string str, string OutFile )
{ StreamWriter sw = null;
string Head = string.Empty;
// 写文件
try
{
if ( str.Length > 0 )
{
sw = new StreamWriter(OutFile , false, code);
sw.Write( str);
sw.Flush();
}
return true;
}
catch
{
Response.Write("no2");
}
finally
{
if ( sw != null )
sw.Close();
}
return false;
}
this.WriteFile(cstr,name);
Response.Write("ok");
改成:
if(WriteFile(getUrltoHtml("http://www.sina.com"),"E:\\net_test\\test\\sina.htm"))
{
Response.Write("ok");
}
把他放在Page_Load事件里就可以了,你的问题在于变量都没给值,url和name.
试试看。
n++;
你的程序在上面i和n的值是相等的,所以不可能执行下面的:
for (i=0;i<n;i++)
改成
for(int j=0;j<n;j++)
如果上面的语句取不到值的时候,也是不能执行下面的代码:
for (i=0;i<n;i++)这可能是原因所在
If (url.StartsWith("http://") = False) Then
url = "http://" & url
End If
Dim hRqst As HttpWebRequest = HttpWebRequest.Create(url) hRqst.ContentType = "application/x-www-form-urlencoded"
hRqst.Headers.Add("Accept-Language", "zh-cn")
Dim streamData As Stream
Dim bt() As Byte
If (postPara = "") Then
hRqst.Method = "GET"
Else
hRqst.Method = "POST"
hRqst.AllowWriteStreamBuffering = True
bt = System.Text.Encoding.ASCII.GetBytes(postPara)
hRqst.ContentLength = bt.Length
hRqst.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
hRqst.Referer = refer
hRqst.KeepAlive = False
hRqst.Timeout = 20000
streamData = hRqst.GetRequestStream()
streamData.Write(bt, 0, bt.Length)
streamData.Close()
End If
Dim hRsp As HttpWebResponse
hRsp = hRqst.GetResponse()
streamData = hRsp.GetResponseStream()
If (encType = "") Then
encType = "GB2312"
End If
Dim readStream As New IO.StreamReader(streamData, System.Text.Encoding.GetEncoding(encType))
GetPage = readStream.ReadToEnd()
streamData.Close()
End Function然后把这个方法放在你想要触发的地方就可以了
里面的那个参数url就是你想要把他生成html的那个界面
如果上面给的地址是错误的话,他也是不能生成静态也面的。
所以建议楼主单步调试看看到底是那里出了问题。