您需要将文件从 C# 控制台应用程序发送到 Web 服务器,然后接收数据。我查看示例,但它不起作用。如何组织文件的发送?
我这样做
string uri = "http://mysite/api/postfile";
string localPath = @"c:\path_to_file.doc";
var parameters = new System.Collections.Specialized.NameValueCollection()
{
{ "parametr1", "parametr1_Value" }
};
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
client.QueryString = parameters;
var responseBytes = client.UploadFile(uri, localPath);
var response = Encoding.UTF8.GetString(responseBytes);
Console.WriteLine("\n Ответ \n {0}", response);
}
在服务器上接受控制器
public class PostFileController : Controller
{
[HttpPost]
public ActionResult Index(HttpPostedFileBase upload)
{
if (upload != null)
{
// получаем имя файла
string fileName = System.IO.Path.GetFileName(upload.FileName);
// сохраняем файл в папку Files в проекте
upload.SaveAs(Server.MapPath("~/Files/" + fileName));
return Content("1");
}
else
{
return Content("0");
}
}
}
试试这样:
借来这里。
如果你真的,真的不想要异步代码,你也可以进行阻塞调用(但我不推荐):
文件以编码方式传输
multipart/form-data。因此,您需要:生成分隔符(例如,
Asrf456BGe4h)提交标题
发送请求正文:
注意末尾的两个连字符。
它看起来像这样:
将文件写入流:
采用字节流的操作必须具有 byte[] 参数
此处描述了如何将字节流写入文件:
https ://stackoverflow.com/questions/6397235/write-bytes-to-file
有一次我用 1C 写了一篇 .Net 文章。异步 HTTP 请求,Post 多个 multipart/form-data 文件,使用 gzip、deflate 进行流量压缩,方便的站点解析等。
没错,1C 上有一个例子,但这不是特别重要
诸如此类的问题
还有一个指向该服务的链接http://pastebin.com/1kyhAdai