在URL中传递用户名和密码凭据的curl命令能否在C#program/.net环境中工作
在URL中传递用户名和密码凭据的curl命令能否在C#program/.net环境中工作 例如: curl-T testfile.txt' 在C#.net环境中,Curl命令的等效性是什么 我最初的问题是试图将文件上传到webdav服务器。我尝试使用C#webclient和httpwebrequest。。。。。。即使凭证在请求的实际标头中,也要不断获取401自动登录错误 在unix环境中使用Curl时,上传文件没有问题 我不确定问题是否与HttpWebrequest的重定向有关: 这就是: 401-身份验证错误-标头中没有用户名和密码在URL中传递用户名和密码凭据的curl命令能否在C#program/.net环境中工作,c#,http,unix,C#,Http,Unix,在URL中传递用户名和密码凭据的curl命令能否在C#program/.net环境中工作 例如: curl-T testfile.txt' 在C#.net环境中,Curl命令的等效性是什么 我最初的问题是试图将文件上传到webdav服务器。我尝试使用C#webclient和httpwebrequest。。。。。。即使凭证在请求的实际标头中,也要不断获取401自动登录错误 在unix环境中使用Curl时,上传文件没有问题 我不确定问题是否与HttpWebrequest的重定向有关: 这就是: 4
然后-301重定向-这包括标题中的用户名和密码请尝试以下代码。。。它会帮助你
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();
我是潘迪亚。非常感谢。这不起作用。Stell获取401身份验证错误。该程序尝试在标题中上载-无用户/密码,然后执行重定向-包含用户和密码。见:nhttp://stackoverflow.com/questions/9846408/webclient-how-to-keep-basic-authorization-when-redirectThe 问题可能是如何防止httpwebrequest执行重定向?