c#中使用httpwebrequest报操作超时的问题

zhaoenxiang100 2009-11-12 10:55:49
以下是我查的代码,但是不能运行总是报:操作超时,由于我不懂c#,不知道怎么修改,所以小妹我拜托各位了.
private string GetWebContent(string Url)
{
string strResult="";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
    //声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch
{
MessageBox.Show("出错");
}
return strResult;
}
...全文
875 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jingshuaizhjason 2009-11-12
  • 打赏
  • 举报
回复
我用你的代码运行 没有 问题, 可能是你的这个url 不可访问 一下为测试代码


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace testrequest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

string strResult="";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.sohu.com");
    //声明一个HttpWebRequest请求
request.Timeout = 30000;
//设置连接超时时间
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.GetEncoding("GB2312");
StreamReader streamReader = new StreamReader(streamReceive, encoding);
strResult = streamReader.ReadToEnd();
}
catch
{
MessageBox.Show("出错");
}

this.richTextBox1.Text = strResult;


}
}
}
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在C#编程HttpWebRequest是.NET Framework提供的一个强大工具,用于通过HTTP协议与Web服务器交互,支持GET、POST等常见请求类型。HttpWebRequest继承自WebRequest类,专门用于处理HTTP通信。通过创建HttpWebRequest对象,可以设置URL、请求方法、超时时间等属性。 例如,创建一个GET请求的代码如下: GET请求用于从服务器获取资源,参数通常附加在URL。如果URL包含文字符,需要进行编码。以下是一个使用GBK编码的GET请求示例: HttpUtility.UrlEncode用于对字符串进行URL编码,Encoding.GetEncoding用于获取指定的编码。 POST请求则用于向服务器发送数据,数据通常包含在请求体。以下是一个POST请求的示例: 在POST请求,ContentType属性设置为application/x-www-form-urlencoded,表示数据是URL编码的。ContentLength属性指定请求体的长度,GetRequestStream方法用于获取用于写入请求数据的流。 如果POST请求包含文字符,同样需要编码。以下是一个使用GBK编码的POST请求示例: 在上述代码,ContentType属性增加了charset=gb2312,明确指定了数据的编码方式。 发送请求后,可以通过调用GetResponse方法获取服务器的响应,并通过WebResponse对象的GetResponseStream方法读取响应内容。例如: 总结来说,HttpWebRequestC#用于处理HTTP请求的核心类,支持GET和POST等常见请求类型。在处理文数据时,需要注意编码问题,以确保

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧