2010-11-15 57 views
3

這是可能的,在ASP.net中用C#編寫一個套接字? 爲例我可以在C#和asp.net中編寫一個類似於此Perl代碼的代碼嗎? :在ASP.net中使用C#編程的套接字編程

> use HTTP::Request::Common qw(POST); 
> use LWP::UserAgent; $ua = new 
> LWP::UserAgent(agent => 'Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5)Gecko/20060719 Firefox/1.5.0.5'); 
> $ua -> timeout(20); 
> my $req = POST 'http://Example.com/', 
> [ login_username => 'mehdi' , login22 => '654321' , go => 'submit']; 
> my $content = $ua->request($req); 

請給我一個例子或將上面的代碼轉換爲C#和asp.net。 在此先感謝。

+2

這是可能的,但你會使用HTTP客戶端,而不是原始套接字。 – 2010-11-15 17:12:13

+0

http://www.c-sharpcorner.com/UploadFile/mahesh/WebRequestNResponseMDB12012005232323PM/WebRequestNResponseMDB.aspx – jocull 2010-11-15 17:13:49

+0

Steven:是的,對不起,我對HTTP客戶端=> Socket編程:d – Amra 2010-11-15 17:16:59

回答

6

是的,你可以使用WebClient類實現.NET相同的功能:

class Program 
{ 
    static void Main() 
    { 
     using (var client = new WebClient()) 
     { 
      client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5)Gecko/20060719 Firefox/1.5.0.5"; 
      var values = new NameValueCollection 
      { 
       { "login_username", "mehdi" }, 
       { "login22", "654321" }, 
       { "go", "submit" } 
      }; 
      var result = client.UploadValues("http://example.com", values); 

      // TODO: handle the result here like 
      Console.WriteLine(Encoding.Default.GetString(result)); 
     } 
    } 
} 
+0

感謝Darin Dimitrov,非常好的回答 – Amra 2010-11-15 17:20:38

+0

什麼是「NameValueCollection」的命名空間和Encoding.Default.GetString? Tnx – Amra 2010-11-15 17:37:43

+0

'System.Collections.Specialized.NameValueCollection'和'System.Text.Encoding'。 「Shift + Alt + F10 + Enter」在紅色的波浪曲線上,Visual Studio會很小心。 – 2010-11-15 17:38:29