C#Async Webrequest

时间:2012-06-18 18:53:08

标签: c# asynchronous httpwebrequest webrequest

我需要使用C#:

以编程方式调用以下URL
http://mysite.com/AdjustSound.php

这个php文件需要我SoundLevel。所以,一个示例调用就是这样的:

http://mysite.com/AdjustSound.php?SoundLevel=30

我有两个问题:

1

WebRequest request = 
   WebRequest.Create("http://mysite.com/AdjustSound.php?SoundLevel=30");
// Which one?
// request.Method = "GET";
// request.Method = "POST";

问题1:我是否需要提出GETPOST请求?

2

因为,我经常拨打这个电话(每秒10-20次);我有一些速度问题。所以,我不希望我的程序等到这个http调用结束并检索结果。我希望Webrequest以异步方式运行。

另一个问题是我不需要查看此http调用的结果。我只是想调用服务器端。甚至,我不在乎这个调用是否成功完成......(如果它失败了,我很可能会在几毫秒后调整声音。所以,我不在乎。)我写了下面的代码:

WebRequest request = 
     WebRequest.Create("http://mysite.com/AdjustSound.php?SoundLevel=30");
request.Method = "GET";
request.BeginGetResponse(null, null);

问题2: Doest运行此代码似乎没问题?可以打电话给request.BeginGetResponse(null, null);吗?

修改

阅读评论后;我修改了我的代码,如下所示:

WebClient webClient = new WebClient();
Uri temp = new Uri("http://mysite.com/AdjustSound.php?SoundLevel=30");
webClient.UploadStringAsync(temp, "GET", "");

现在好吗/好吗?

1 个答案:

答案 0 :(得分:1)

  

问:我是否需要提出GET或POST请求?

答:这个例子有效一个“GET”请求。在这里,我使用“GET”。如果您有表格,我会推荐“POST”

  问:我经常拨打这个电话(每秒10-20次);一世   有一些速度问题。

如果您碰巧使用.Net 4.x,我强烈建议您查看他们的“异步API”: