0

URL でユーザー名とパスワードの資格情報を渡す curl コマンドは、C# プログラム/.net 環境で機能しますか?

例: curl -T testfile.txt ' http://user:password@domain.net/dir/

C# .net 環境で Curl コマンドに相当するものは何ですか?

私の最初の問題は、ファイルを webdav サーバーにアップロードしようとしたことから始まりました。私は C# webclient と httpwebrequest を使用してみました......そして、資格情報がリクエストの実際のヘッダーにあったにもかかわらず、401 認証エラーが発生し続けます。

Unix 環境で Curl を使用すると、ファイルのアップロードに問題はありませんでした。

HttpWebrequest が行うリダイレクトに問題があるかどうかはわかりません。

リダイレクト時に基本的な承認を維持する方法

それは次のとおりです。

401 - 認証エラー - ヘッダーにユーザー名とパスワードがありません

次に - 301 リダイレクト - これには、ヘッダーにユーザー名とパスワードが含まれます

4

1 に答える 1

0

以下のコードを試してみてください...それはあなたを助けます...

string fileToUpload = @"c:\testfile.txt";
FileStream rdr = new FileStream(fileToUpload, FileMode.Open);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://localhost/Upload"); 
req.PreAuthenticate = true;
req.Credentials = new NetworkCredential ("username", "password");
req.Method = "POST"; 
req.ContentLength = rdr.Length;
req.AllowWriteStreamBuffering = true;
Stream reqStream = req.GetRequestStream();
Console.WriteLine(rdr.Length);                
byte[] inData = new byte[rdr.Length];

// Get data from upload file to inData 
int bytesRead = rdr.Read(inData, 0, (int)rdr.Length);

// put data into request stream
reqStream.Write(inData, 0, (int)rdr.Length);
rdr.Close();

req.GetResponse();
// after uploading close stream 
reqStream.Close(); 
于 2013-02-01T14:54:20.177 に答える