将cURL转换为c#或VB.net

将cURL转换为c#或VB.net,c#,vb.net,curl,webclient,httpresponse,C#,Vb.net,Curl,Webclient,Httpresponse,我无法使用我的代码将文件上载到cloud.seafile.com 引用中的卷曲字符串为: curl -H "Authorization: Token 6a3ff5c8c2127baf8e1d94d928acc477f72a9519" -F file=@"C:\vcredist.bmp" -F filename=vcredist.bmp -F parent_dir=/ https://cloud.seafile.com/seafhttp/upload-api/26af9fe1 使用cURL很好

我无法使用我的代码将文件上载到cloud.seafile.com

引用中的卷曲字符串为:

curl -H "Authorization: Token 6a3ff5c8c2127baf8e1d94d928acc477f72a9519" -F file=@"C:\vcredist.bmp" -F filename=vcredist.bmp -F parent_dir=/ https://cloud.seafile.com/seafhttp/upload-api/26af9fe1
使用cURL很好


我用System.Net.WebClient或HttpResponse尝试了许多不同的方法,但都没有效果。

中介绍了您要查找的内容

您需要通过
Authorization
HTTP头向请求添加身份验证:

req.Headers.Add("Authorization", auth);

根据评论的要求,在链接被删除时编码(如果是这样,您需要10K+代表才能查看)。 该代码特定于具有边界的多部分/表单数据(根据您的-v指定)

然后是用法:

NameValueCollection nvc = new NameValueCollection();
nvc.Add("id", "TTR");
nvc.Add("btn-submit-photo", "Upload");
HttpUploadFile("http://your.server.com/upload", 
     @"C:\test\test.jpg", "file", "image/jpeg", nvc);

我试图将文件上传到Seafile云服务。 我已经尝试了HttpUploadFile函数。 用fiddler捕获的原始请求与cURL相同,但由于某些原因它不起作用

我通过以下方式解决了在项目中包含curl.exe的问题:

 Dim pInfo As New ProcessStartInfo(cURLPath, "-H ""Authorization: Token " & Token & """ -F file=@""" & FilePathToUpload & """ -F filename=" & FileNameToUpload & " -F parent_dir=/ " & UploadURL)
 pInfo.WindowStyle = ProcessWindowStyle.Hidden
 pInfo.UseShellExecute = False
 Process.Start(pInfo)

给我们看看你的代码。另外,请使用
HttpClient
。是否已将所有必需的头添加到.NET请求中?使用“-v”使用curl标记以显示curl随您的请求发出的所有标记。我不能使用HttpClient,因为我必须使用Framework 4客户端配置文件。使用curl-v,我可以得到以下内容:POST/seafhttp/upload api/26af9fe1 HTTP/1.1>用户代理:curl/7.37.0>主机:cloud.seafile.com>接受:/>授权:令牌6A3FF5C8C2127BAF8E1D94D928ACC477F7A9519>内容长度:6099>预期:100继续>内容类型:多部分/表单数据;boundary=---------------------------50967bf4b0 e5362d> Dim pInfo As New ProcessStartInfo(cURLPath, "-H ""Authorization: Token " & Token & """ -F file=@""" & FilePathToUpload & """ -F filename=" & FileNameToUpload & " -F parent_dir=/ " & UploadURL) pInfo.WindowStyle = ProcessWindowStyle.Hidden pInfo.UseShellExecute = False Process.Start(pInfo)