相关疑难解决方法(0)

使用C#通过HTTP POST发送文件

我一直在寻找和阅读它,并没有任何真正有用的东西.

我正在编写一个小型C#win应用程序,允许用户将文件发送到Web服务器,而不是通过FTP,而是通过HTTP使用POST.可以把它想象成一个Web表单,但在Windows应用程序上运行.

我使用这样的东西创建了我的HttpWebRequest对象

HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest 
Run Code Online (Sandbox Code Playgroud)

并且还设置了Method,ContentTypeContentLength属性.但那就是我能走的远.

这是我的一段代码:

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#发送文件(文本文件,图像,音频等).

谢谢!

c# post system.net http

93
推荐指数
4
解决办法
22万
查看次数

WebApi 2 POST使用单个字符串参数而不是wokring

我有以下控制器:

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)

javascript c# asp.net-web-api asp.net-web-api2

29
推荐指数
2
解决办法
4万
查看次数

MVC或Web API传输byte []是最有效的方法

在成功实现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)

c# ajax asp.net-mvc bytearray asp.net-mvc-4

13
推荐指数
1
解决办法
1110
查看次数