我一直在寻找和阅读它,并没有任何真正有用的东西.
我正在编写一个小型C#win应用程序,允许用户将文件发送到Web服务器,而不是通过FTP,而是通过HTTP使用POST.可以把它想象成一个Web表单,但在Windows应用程序上运行.
我使用这样的东西创建了我的HttpWebRequest对象
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest
Run Code Online (Sandbox Code Playgroud)
并且还设置了Method,ContentType和ContentLength属性.但那就是我能走的远.
这是我的一段代码:
HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest;
req.KeepAlive = false;
req.Method = "POST";
req.Credentials = new NetworkCredential(user.UserName, user.UserPassword);
req.PreAuthenticate = true;
req.ContentType = file.ContentType;
req.ContentLength = file.Length;
HttpWebResponse response = null;
try
{
response = req.GetResponse() as HttpWebResponse;
}
catch (Exception e)
{
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题基本上是如何通过HTTP POST用C#发送文件(文本文件,图像,音频等).
谢谢!
我有以下控制器:
public class ValuesController : ApiController
{
// POST api/values
public IHttpActionResult Post(string filterName)
{
return new JsonResult<string>(filterName, new JsonSerializerSettings(), Encoding.UTF8, this);
}
}
Run Code Online (Sandbox Code Playgroud)
WebApi配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
Run Code Online (Sandbox Code Playgroud)
我使用这个js代码来调用api
$.ajax(
{
url: "/api/values/",
type: "POST",
dataType: 'json',
data: { filterName: "Dirty Deeds" },
success: function (result) {
console.log(result);
},
error: function (xhr, status, p3, p4) {
var err = "Error " + " " + status + " " + p3; …Run Code Online (Sandbox Code Playgroud) 在成功实现ajax POST,上传模型对象甚至复杂对象之后,由于这个好帖子,新的目标是实现更复杂的场景.
我试图通过搜索谷歌的代码示例来实现有问题的任务,而没有具体和正确的答案
目标是从客户端到服务器的多用途(多数据类型)数据传输(不使用表单或HttpRequestBase)以最有效的方式传递原始字节数组(我知道可以实现新的协议HTTP/2或googles
Protocol Buffers - 谷歌的数据交换格式
[HttpPost]
public JsonResult UploadFiles(byte[] parUploadBytearry)
{
}
Run Code Online (Sandbox Code Playgroud)
优选地,其中一个属性是a的模型 byte[]
[HttpPost]
public [JsonResult / ActionResult] Upload(SomeClassWithByteArray parDataModel)
{
}
Run Code Online (Sandbox Code Playgroud)
ajax http Post签名:
Log("AajaxNoPostBack preparing post-> " + targetUrl);
$.ajax({
type: 'POST',
url: targetUrl,
data: mods,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function for Success..
});
Run Code Online (Sandbox Code Playgroud)
我也拼命尝试了这种解决方法
public JsonResult UploadFiles(object parUploadBytearry)
{
if (parUploadBytearry== null)
return null;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
var pathtosSave = System.IO.Path.Combine(Server.MapPath("~/Content/uploaded"), …Run Code Online (Sandbox Code Playgroud)