如何将这个Perl上传脚本翻译成C#?

如何将这个Perl上传脚本翻译成C#?,c#,perl,post,upload,rapidshare,C#,Perl,Post,Upload,Rapidshare,我目前正在尝试将我的Perl上载脚本移植到C#,但我对该语言不太熟悉,无法让它工作。我试了很长时间,但似乎没有任何效果。我感谢你的帮助 Perl版本: #!/usr/bin/perl -w use strict; use warnings; use LWP::Simple; use LWP::UserAgent; use HTTP::Request::Common; my ($user, $pass, $type, $fileName); # This chapter sets some va

我目前正在尝试将我的Perl上载脚本移植到C#,但我对该语言不太熟悉,无法让它工作。我试了很长时间,但似乎没有任何效果。我感谢你的帮助

Perl版本:

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Request::Common;
my ($user, $pass, $type, $fileName);

# This chapter sets some vars and parses some vars.
$/         = undef;
$SIG{PIPE} = 'IGNORE';
$fileName  = $ARGV[0] || die "Syntax: $0 <filename to upload> <free|prem|col> [login] [password]\n";
$type      = $ARGV[1] || "";
$user      = $ARGV[2] || "";
$pass      = $ARGV[3] || "";

# RapidShare API Documentation @ http://images.rapidshare.com/apidoc.txt

my $nextuploadserver = get('http://rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver');
die 'nextuploadserver broken' if $nextuploadserver !~ /^\d+$/;
print 'nextuploadserver:' . $nextuploadserver . "\n";

my $userAgent = LWP::UserAgent->new();
my $request   = POST 'http://rs' . $nextuploadserver . '.rapidshare.com/cgi-bin/rsapi.cgi',
  Content_Type => 'form-data',
  Content      => [
    sub         => 'upload',
    login       => $user,
    password    => $pass,
    filename    => $fileName,
    filecontent => [$fileName],
  ];
my $response = $userAgent->request($request);
die 'fucked up' if $response->is_error();
print $response->content . "\n";
注:如果有人正在寻找一个正在运行的Rapidshare uplaod脚本,您可以自由使用我在帖子中发布的脚本。:)

下面是我们正在使用的一些c#POST代码:

string uri = "http://...";
string parameters = String.Format("param1={0}&param2={1}",
                                  HttpUtility.UrlEncode(param1),
                                  HttpUtility.UrlEncode(param2));

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
webRequest.AllowAutoRedirect = true;
webRequest.MaximumAutomaticRedirections = 1;

byte[] bytes = Encoding.ASCII.GetBytes(parameters);
Stream os = null;
try {
    webRequest.ContentLength = bytes.Length;
    os = webRequest.GetRequestStream();
    os.Write(bytes, 0, bytes.Length);
} catch (Exception ex) {
    // Handle exception
} finally {
    if (os != null) {
        os.Close();
    }
}

什么不起作用?您是否返回异常或随机字符或?
string uri = "http://...";
string parameters = String.Format("param1={0}&param2={1}",
                                  HttpUtility.UrlEncode(param1),
                                  HttpUtility.UrlEncode(param2));

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
webRequest.AllowAutoRedirect = true;
webRequest.MaximumAutomaticRedirections = 1;

byte[] bytes = Encoding.ASCII.GetBytes(parameters);
Stream os = null;
try {
    webRequest.ContentLength = bytes.Length;
    os = webRequest.GetRequestStream();
    os.Write(bytes, 0, bytes.Length);
} catch (Exception ex) {
    // Handle exception
} finally {
    if (os != null) {
        os.Close();
    }
}