首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebResponse和WebRequest

WebResponse和WebRequest
EN

Stack Overflow用户
提问于 2012-09-09 04:23:53
回答 1查看 731关注 0票数 0

我有这个代码

// Web请求部分

代码语言:javascript
复制
private static WebRequest Web_request(string ip)
{
    WebRequest request = WebRequest.Create("http://website/");
    request.Method = "POST";
    string postData = "a=1&b=2";
    byte[] byteArray = Encoding.UTF8.GetBytes(postData);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();
    return request;        
}

// Web响应节

代码语言:javascript
复制
private static string Web_response(WebRequest request)
{
    WebResponse response = request.GetResponse();
    Stream dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();
    reader.Close();
    dataStream.Close();
    response.Close();

    return responseFromServer;
}

和主程序

代码语言:javascript
复制
void Main()
{
    for (int ii = 0; ii < counter; ii++)
    {
        req[ii] = Web_request(ip_ext[ii]);
    }
    for (int ii = 0; ii < counter; ii++)
    {
        string domen = Web_response(req[ii]);
    }
}

但是在Web_request循环的第三步,程序显示了Form1并冻结了。也许我应该在web_request部分关闭一些东西..有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2012-09-09 04:37:51

您需要将方法作为请求和响应分开

代码语言:javascript
复制
HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
req.Method = Constants.HTTPVerbGet;
req.KeepAlive = false;
req.Accept = Constants.HTTPRequestType;
using (var webResponse = (HttpWebResponse)req.GetResponse())
{
    using (var reader = new StreamReader(webResponse.GetResponseStream()))
    {
        string objJson = reader.ReadToEnd().ToString();
    }
}

试试这个..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12334163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档