一个Zend_Http_Client()等同于C#

问题描述:

我发现这个服务器端谷歌分析,我一直在试图将其转换成C#代码。一切都很顺利,但我不确定Zend_Http_Client在.net方面会是什么。一个Zend_Http_Client()等同于C#

我在这里使用的代码,将其建于PHP和Zend框架参考http://code.google.com/p/serversidegoogleanalytics/(我认为)。

这里有两种方法

public function getHttpClient() { 
     if(!$this->httpClient instanceof Zend_Http_Client) { 
      include_once("Zend/Http/Client.php"); 
      $this->httpClient = new Zend_Http_Client(); 
      $this->httpClient->setConfig(array(
       'maxredirects' => 1, 
       'timeout'  => 4 
      )); 
      $this->httpClient->setHeaders('Referer', "http://" . self::$trackingDomain . "/"); 
      $this->httpClient->setHeaders("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)"); 
      $this->httpClient->setCookieJar(); 
     } 
     return $this->httpClient; 
    } 

private function requestHttp($url, $getParams = array()) 
    { 
     $client = $this->getHttpClient(); 
     $client->setUri($url); 
     $client->setParameterGet($getParams); 
     $response = $client->request(); 

     if ($response->isSuccessful()) 
      return true; 
     else 
      return false; 
    } 

我主要关注的是setCokieJar(),MaxRedirects,和超时,setParameterGet(),setURI(),并要求( )

那么在.NET等同? Web客户端? HttpWebResponse? HttpWebRequest的?或者是别的什么?

任何帮助将不胜感激。

我已经使用System.Net.WebClientSystem.Net.WebRequest之前取得了一些成功(我相信WebResponse只是对应于WebRequest)。 WebClient更易于使用,但提供的选项更少。

+0

使用Zend Class中的setParameterGet()添加其他参数是很好的选择。我需要发送Google Analytics(分析)信息,这就是我问的原因。 – Bombcode 2011-05-06 13:41:51

+0

@Bombcode - 什么样的附加参数?请求参数?形成?饼干? HTTP标头? – 2011-05-06 13:44:05

+0

'GET'请求与加入URL的内容一样简单。我相信'POST'请求​​(有人纠正我,如果我错了),你会使用['UploadString'](http://msdn.microsoft.com/en-us/library/0645045y.aspx)并设置字符串到你想要的查询字符串。 (有点怪异,真的;再次,有人纠正我,如果有一个更好的办法) – 2011-05-06 13:58:29

我不认为你会发现所有功能于一身的相当,但WebClient是一个起点,你最好的选择。 HttpWebResponseHttpWebRequestWebClient稍低一些。 WebClient拥有一些用于制作HTTP请求的优秀包装。

+0

感谢时,我在MSDN中签出HttpWebRequest和HttpWebRequest的他们看起来真的很不错,但我不知道如何添加额外的参数给它。 – Bombcode 2011-05-06 13:43:36