相关疑难解决方法(0)

通过WebClient.DownloadData自动解压缩gzip响应

我希望自动解压缩GZiped的响应.我使用以下代码段:

mywebclient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip";
mywebclient.Encoding = Encoding.UTF8;

try
{
    var resp = mywebclient.DownloadData(someUrl);
}
Run Code Online (Sandbox Code Playgroud)

我已经检查了HttpRequestHeader enum,没有选择通过这个来做到这一点Headers

如何自动解压缩resp?或者我应该使用另一种功能而不是mywebclient.DownloadData

.net gzip webclient

42
推荐指数
2
解决办法
3万
查看次数

如何在发布数据后阅读WebClient响应?

看看代码:

using (var client = new WebClient())
{
    using (var stream = client.OpenWrite("http://localhost/", "POST"))
    {
        stream.Write(post, 0, post.Length);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我如何读取HTTP输出?

.net c# webclient

18
推荐指数
2
解决办法
4万
查看次数

下载网址内容

我正在使用脚本,在那里我可以浏览网页内容或"网址",但我无法将网页内容复制到其中并作为文件下载.这是我到目前为止所做的:

$url = "http://sp-fin/sites/arindam-sites/_layouts/xlviewer.aspx?listguid={05DA1D91-F934-4419-8AEF-B297DB81A31D}&itemid=4&DefaultItemOpen=1"
$ie=new-object -com internetexplorer.application
$ie.visible=$true
$ie.navigate($url)
while($ie.busy) {start-sleep 1} 
Run Code Online (Sandbox Code Playgroud)

如何复制内容$url并将其作为文件保存到本地驱动器?

更新:

我收到了这些错误:

使用"2"参数调用"DownloadFile"的异常:"远程服务器返回错误:(401)未经授权." 在:行:6 char:47 +(New-Object system.net.webclient).DownloadFile(<<<<"$ url/download-url-content",'save.html')

方法调用中缺少')'.在:行:6 char:68 +(New-Object system.net.webclient).DownloadFile("$ url",'save.html'<<<<

使用"2"参数调用"DownloadFile"的异常:"远程服务器返回错误:(401)未经授权." 在:行:6 char:47 +(New-Object system.net.webclient).DownloadFile(<<<<"$ url",'save.html')

好吧,让我解释一下,关于我想要做的事情:我在我们的共享点网站上有一个excel文件,这是我试图在本地下载的文件(任何格式),这是脚本的一部分,所以对于脚本的后半部分,我可以将此文件与其他数据进行比较并获得输出.

现在,如果我能以某种方式从网站上映射"我的文档"并能够下载文件,那对我也有用.

powershell

18
推荐指数
4
解决办法
6万
查看次数

HttpWebRequest vs Webclient(特殊场景)

我知道这个问题已经在这个帖子中得到了回答,但我似乎无法找到细节.

在我的场景中,我正在构建一个控制台应用程序,它将密切关注任何更改的html页面源.如果发生任何更新/更改,我将执行进一步的操作.此外,我还会在每1秒后执行一次请求,或者在上一次请求完成后立即执行请求.

我似乎无法弄清楚我应该使用HttpWebRequestWebClient下载html页面源并执行比较?在我看来,您认为什么是理想的解决方案?速度和可靠性都:)

html c# http

7
推荐指数
2
解决办法
4614
查看次数

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

发布到同一网络上的另一台计算机时,使用WebClient.UploadString的HTTP Post非常慢

我们在客户端应用程序中有一个代码,它将数据发布到另一个程序上运行的HTTP侦听器.

try
{
  using (WebClient client = new WebClient())
  {
     client.Encoding = System.Text.Encoding.UTF8;
     client.Credentials = new NetworkCredential(NotificationUser, NotificationPassword);
     client.UploadString(NotificationUrl, msg);  // Notification URL is IP base not DNS name.
  }
}
catch (Exception ex){}
Run Code Online (Sandbox Code Playgroud)

我们正在高负载环境中对其进行测试,并尝试对请求/响应延迟进行压力测试.如果我将这两个程序放在同一台机器上,我会在一秒钟内从发布应用程序发送大约160条消息到http监听器应用程序,但是如果我将http监听器应用程序放在同一网络上的不同机器上(本地网络)我们在内部创建),这个数字下降到大约5条消息/秒.

以下是我们迄今为止所尝试的内容:

  1. Ping到第二台机器显示它的响应时间不到1毫秒,tracert显示它只有一跳.两台机器之间没有防火墙或代理.
  2. 我使用fiddlerStressStimulus来产生大量的流量来发布到另一台机器上的监听器应用程序,我得到了(大约160条消息/秒).在我看来,这排除了网络延迟或者监听器应用程序是否存在问题.
  3. 我尝试在发布应用程序中使用UploadStringAsync而不是UploadString,并没有太大的不同.
  4. 没有防病毒等......

奇怪的是,如果侦听器应用程序位于同一台机器上,则相同的代码正常工作.有谁知道HTTP帖子有任何限制或我忽略的东西?

c# http http-post

3
推荐指数
1
解决办法
3360
查看次数