Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#重定向post请求_C#_.net_Post_Model View Controller - Fatal编程技术网

c#重定向post请求

c#重定向post请求,c#,.net,post,model-view-controller,C#,.net,Post,Model View Controller,尝试使用第一个应用程序收到的表单数据参数从一个应用程序向另一个应用程序发出post请求。 两个应用程序控制器当前具有相同的方法: public async Task<ActionResult> TestSet() { var inputString = Request.Form["inputString"]; var inputFile = Request.Files[0]; var resultString

尝试使用第一个应用程序收到的表单数据参数从一个应用程序向另一个应用程序发出post请求。 两个应用程序控制器当前具有相同的方法:

public async Task<ActionResult> TestSet()
    {
        var inputString = Request.Form["inputString"];
        var inputFile = Request.Files[0];
        var resultString = await _service.Set(inputString, inputFile.FileName, inputFile.ContentType, inputFile.InputStream);
        return new MyJsonResult(new
        {
            fileName = resultString
        });
    }
尝试将第一种方法变成这样

public async Task<ActionResult> TestSet()
    {
        var inputString = Request.Form["inputString"];
        var inputFile = Request.Files[0];
        if (!string.IsNullOrEmpty(_redirectUrl))
        {
            using (var client = new HttpClient())
            {
                HttpContent content = GetContentSomehow(this.Request); // this i have an issue with
                var response = await client.PostAsync(_redirectUrl, content);
                var responseString = await response.Content.ReadAsStringAsync();
                return new MyJsonResult(responseString);
            }
        }
        var resultString = await _service.Set(inputString, inputFile.FileName, inputFile.ContentType, inputFile.InputStream);
        return new MyJsonResult(new
        {
            fileName = resultString
        });
    }

通过将StringContent和StreamContent合并为MultipartFormDataContent解决了此问题

public static MultipartFormDataContent GetMultipartFormData(HttpRequestBase req)
    {
        var formData = new MultipartFormDataContent();
        //formData.Headers.ContentType.MediaType = "multipart/form-data";
        foreach (var row in req.Form.ToDictionary())
        {
            formData.Add(new StringContent(row.Value), row.Key);
        }

        var file = req.Files[0];
        StreamContent fileStreamContent = new StreamContent(file.InputStream);
        fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
        formData.Add(fileStreamContent, file.FileName, file.FileName);

        return formData;
    }
var jsonString = JsonConvert.SerializeObject(Request.Form.ToDictionary());
var content = new StringContent(jsonString, Encoding.UTF8, "application/json");
public static MultipartFormDataContent GetMultipartFormData(HttpRequestBase req)
    {
        var formData = new MultipartFormDataContent();
        //formData.Headers.ContentType.MediaType = "multipart/form-data";
        foreach (var row in req.Form.ToDictionary())
        {
            formData.Add(new StringContent(row.Value), row.Key);
        }

        var file = req.Files[0];
        StreamContent fileStreamContent = new StreamContent(file.InputStream);
        fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
        formData.Add(fileStreamContent, file.FileName, file.FileName);

        return formData;
    }