标签: webclient

如何使用C#中的WebClient将数据发布到特定URL

我需要使用WebClient的"HTTP Post"将一些数据发布到我拥有的特定URL.

现在,我知道这可以通过WebRequest完成,但出于某些原因我想使用WebClient.那可能吗?如果是这样,有人能告诉我一些例子还是指向正确的方向?

c# post webclient

305
推荐指数
6
解决办法
43万
查看次数

如何更改.NET WebClient对象的超时

我试图将客户端的数据下载到我的本地机器(以编程方式),并且他们的网络服务器非常非常慢,导致我的WebClient对象超时.

这是我的代码:

WebClient webClient = new WebClient();

webClient.Encoding = Encoding.UTF8;
webClient.DownloadFile(downloadUrl, downloadFile);
Run Code Online (Sandbox Code Playgroud)

有没有办法在这个对象上设置无限超时?或者,如果没有,任何人都可以用另一种方式帮助我做一个例子吗?

该URL在浏览器中正常工作 - 只需3分钟即可显示.

.net c# webclient file download

217
推荐指数
9
解决办法
16万
查看次数

HTTP POST返回错误:417"期望失败."

当我尝试POST到URL时,会导致以下异常:

远程服务器返回错误:(417)期望失败.

这是一个示例代码:

var client = new WebClient();

var postData = new NameValueCollection();
postData.Add("postParamName", "postParamValue");

byte[] responseBytes = client.UploadValues("http://...", postData);
string response = Encoding.UTF8.GetString(responseBytes); // (417) Expectation Failed.
Run Code Online (Sandbox Code Playgroud)

使用一HttpWebRequest/HttpWebResponse对或一HttpClient对没有区别.

造成这种异常的原因是什么?

.net c# webclient http http-post

209
推荐指数
4
解决办法
19万
查看次数

在HttpClient和WebClient之间做出决定

我们的网络应用程序在.Net Framework 4.0中运行.UI通过ajax调用调用控制器方法.

我们需要从供应商处使用REST服务.我正在评估在.Net 4.0中调用REST服务的最佳方法.REST服务需要基本身份验证方案,它可以返回XML和JSON中的数据.没有要求上传/下载大量数据,我将来也看不到任何东西.我看了几个用于REST消费的开源代码项目,并没有找到任何值来证明项目中的额外依赖性.开始评估WebClientHttpClient.我从NuGet下载了用于.Net 4.0的HttpClient.

我搜索了WebClient和之间的差异,HttpClient并且该网站提到单个HttpClient可以处理并发调用,它可以重用已解析的DNS,cookie配置和身份验证.我还没有看到由于差异我们可能获得的实用价值.

我做了一个快速的性能测试,以找到WebClient(同步调用),HttpClient(同步和异步)如何执行.以下是结果:

HttpClient对所有请求使用相同的实例(min - max)

WebClient同步:8毫秒 - 167毫秒
HttpClient同步:3毫秒 - 7228毫秒
HttpClient异步:985 - 10405毫秒

HttpClient为每个请求使用new (min - max)

WebClient同步:4毫秒 - 297毫秒
HttpClient同步:3毫秒 - 7953毫秒
HttpClient异步:1027 - 10834毫秒

public class AHNData
{
    public int i;
    public string str;
}

public class Program
{
    public static HttpClient httpClient = new HttpClient();
    private static readonly string _url = "http://localhost:9000/api/values/";

    public …
Run Code Online (Sandbox Code Playgroud)

.net c# rest webclient dotnet-httpclient

204
推荐指数
6
解决办法
12万
查看次数

.NET中的WebClient和HTTPWebRequest类之间有什么区别?

.NET中WebClientHttpWebRequest类与.NET 之间有什么区别?他们都做了非常相似的事情.实际上,为什么不将它们合并到一个类中(太多的方法/变量等可能是一个原因,但.NET中有其他类违反了该规则).

谢谢.

.net c# webclient httpwebrequest

176
推荐指数
3
解决办法
17万
查看次数

将CookieContainer与WebClient类一起使用

我之前使用过带有HttpWebRequest和HttpWebResponse会话的CookieContainer,但现在,我想将它与WebClient一起使用.据我所知,没有像HttpWebRequests(request.CookieContainer)那样的内置方法.如何从CookieContainer中的WebClient收集cookie?

我用Google搜索并找到以下示例:

public class CookieAwareWebClient : WebClient
{
    private readonly CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = m_container;
        }
        return request;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

c# cookies webclient httpwebrequest cookiecontainer

142
推荐指数
5
解决办法
13万
查看次数

如何从url获取json字符串?

我正在将我的代码格式XML切换为JSON.

但我找不到如何从给定的URL获取JSON字符串.

URL是这样的:" https://api.facebook.com/method/fql.query?query=.....&format=json "

之前我使用过XDocuments,我可以使用load方法:

XDocument doc = XDocument.load("URL");
Run Code Online (Sandbox Code Playgroud)

这个JSON方法的等价物是什么?我正在使用JSON.NET.

c# json facebook webclient linq-to-xml

137
推荐指数
3
解决办法
23万
查看次数

WebClient与HttpWebRequest/HttpWebResponse

在我看来,大部分可以完成的事情HttpWebRequest/Response也可以在WebClient课堂上完成.我读到的地方WebClient是一个高级包装器WebRequest/Response.
到目前为止,我无法看到任何无法实现的功能HttpWebRequest/Response,也无法看到WebClientHttpWebRequest/Response将为您提供更多"细粒度"控件.

我何时应该使用WebClient HttpWebRequest/Response?何时?(显然,HttpWebRequest/Response是HTTP特定的.)

如果HttpWebRequest/Response是较低级别那么WebClient,HttpWebRequest/Response我能用不能实现的目标完成WebClient什么?

.net webclient httpwebrequest httpwebresponse

132
推荐指数
7
解决办法
5万
查看次数

设置webClient.DownloadFile()的超时

我正在使用webClient.DownloadFile()下载文件,我可以为此设置超时,这样如果它无法访问文件就不会花这么长时间吗?

.net c# webclient download

91
推荐指数
2
解决办法
10万
查看次数

如何以编程方式删除WebClient中的2连接限制

那些"精细"的RFC要求每个RFC客户端都要求他们注意每个主机不要使用超过2个连接......

Microsoft在WebClient中实现了这一点.我知道它可以关闭

App.config中:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
 <system.net> 
  <connectionManagement> 
   <add address="*" maxconnection="100" /> 
  </connectionManagement> 
 </system.net> 
</configuration> 
Run Code Online (Sandbox Code Playgroud)

(见http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/1f863f20-09f9-49a5-8eee-17a89b591007)

但是我怎么能以编程方式呢?

遵守 http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit.aspx

"更改DefaultConnectionLimit属性对现有ServicePoint对象没有影响;它仅影响在更改后初始化的ServicePoint对象.如果未直接或通过配置设置此属性的值,则该值默认为常量DefaultPersistentConnectionLimit."

我最好在我实现WebClient时配置限制,但只是在我的程序开始时以编程方式删除这个可怕的限制也没关系.

我访问的服务器不是互联网上的常规网络服务器,而是在我的控制下和本地局域网中.我想做API调用,但我不使用webservices或remoting

.net connection webclient http limit

87
推荐指数
4
解决办法
5万
查看次数