C# http请求 不获取返回数据
RT:我只要把我的请求信息发过去就行了,应为返回的数据很大,也不需要,不知道可不可以不用取返回的资源来减少网络压力...
RT:我只要把我的请求信息发过去就行了,应为返回的数据很大,也不需要,不知道可不可以不用取返回的资源来减少网络压力
展开
3个回答
展开全部
你的这个“减少网络压力”是指什么?你抛到目标服务器一个请求之后,服务器肯定是要给你回应的,这就是客户机与服务器请求问答模式。服务器返回的数据你可以不用取的,但是服务器要给你返回的数据一点都不会少你,如果你请求的是你自己的服务器,有些操作你可以在你的服务器端控制,但是如果你请求的是外部的服务器的话,这些操作你就控制不了了~
更多追问追答
追问
本来需要下载服务器段返回的数据,现在不需要下载了,是不是可以减少请求的那台电脑网络资源的使用
追答
因为网络http请求是一问一答式的,你抛出请求后,不管你会不会接受该请求的响应返回数据,服务器都会返回给你,只是你没拿返回数据而已,但数据还是在服务器给你的响应输出流中。所以,你的减少请求机网络资源的说法不成立。
展开全部
/// <summary>
/// 创建POST方式的HTTP请求
/// </summary>
/// <param name="url">请求的URL</param>
/// <param name="parameters">随同请求POST的参数名称及参数值字典</param>
/// <param name="timeout">请求的超时时间</param>
/// <param name="userAgent">请求的客户端浏览器信息,可以为空</param>
/// <param name="requestEncoding">发送HTTP请求时所用的编码</param>
/// <param name="cookies">随同HTTP请求发送的Cookie信息,如果不需要身份验证可以为空</param>
/// <returns></returns>
public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters, int? timeout, string userAgent, Encoding requestEncoding, CookieCollection cookies)
{
if (string.IsNullOrEmpty(url))
{
throw new ArgumentNullException("url");
}
if (requestEncoding == null)
{
throw new ArgumentNullException("requestEncoding");
}
HttpWebRequest request = null;
//如果是发送HTTPS请求
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
request = WebRequest.Create(url) as HttpWebRequest;
request.ProtocolVersion = HttpVersion.Version10;
}
else
{
request = WebRequest.Create(url) as HttpWebRequest;
}
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
if (!string.IsNullOrEmpty(userAgent))
{
request.UserAgent = userAgent;
}
else
{
request.UserAgent = DefaultUserAgent;
}
if (timeout.HasValue)
{
request.Timeout = timeout.Value;
}
if (cookies != null)
{
request.CookieContainer = new CookieContainer();
request.CookieContainer.Add(cookies);
}
//如果需要POST数据
if (!(parameters == null || parameters.Count == 0))
{
StringBuilder buffer = new StringBuilder();
int i = 0;
foreach (string key in parameters.Keys)
{
if (i > 0)
{
buffer.AppendFormat("&{0}={1}", key, parameters[key]);
}
else
{
buffer.AppendFormat("{0}={1}", key, parameters[key]);
}
i++;
}
byte[] data = requestEncoding.GetBytes(buffer.ToString());
using (Stream stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
}
return request.GetResponse() as HttpWebResponse;
}
追问
麻烦你看清楚问题好吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这怎么可能,HTTP 请求就是 一问一答的模式。有请必应的。你只能在 服务端做停止输出。就不返回的数据
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询