【问题标题】:Fiddler Capture Web.APIFiddler 捕获 Web.API
【发布时间】:2021-02-02 18:43:41
【问题描述】:

我有这个有效的代码。我想查看 Web.API 调用,即 Fiddler 中的 https://localhost:44335/。我想在 Fiddler 中查看 Web.API 调用。我所看到的只是 POST 到索引。有人可以告诉我如何捕获对 https://localhost:44335 的请求。花了 5 个小时研究答案,但没有奏效。

@using aModel
@{
    ViewBag.Title = Constants.Title_Home_Page;
}
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div>
        Import Cases
        <div>
            @Html.TextBox("theFile", "", new { type = "file" }) <br />
            <input type="submit" value="Upload" />
            @ViewBag.Message
        </div>
    </div>
}

控制器

public class HomeController : Controller
{
    public ActionResult Index(int? id)
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index()
    {
        var handler = new WebRequestHandler()
        {
            AllowAutoRedirect = false,
            UseProxy = false,
            ReadWriteTimeout = 120000
        };

        var requestUri = $"api/File/SaveFile/";

        if (Request.Files.Count > 0)
        {
            var file = Request.Files[0];

            using (HttpClient client = new HttpClient(handler) { BaseAddress = new Uri("https://localhost:44335/") })
            {
                using (var content = new MultipartFormDataContent())
                {
                    byte[] fileBytes = new byte[file.InputStream.Length + 1];
                    file.InputStream.Read(fileBytes, 0, fileBytes.Length);
                    var fileContent = new ByteArrayContent(fileBytes);
                    fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = file.FileName };
                    content.Add(fileContent);
                    var result = client.PostAsync(requestUri, content).Result;
                }
            }
        }
        return View();
    }

API

public class FileController : BaseController
{
    [HttpPost]
    //https://stackoverflow.com/questions/35412051/posting-file-from-mvc-to-web-api/43248473
    public HttpResponseMessage SaveFile()
    {
        try
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            if (System.Web.HttpContext.Current.Request.Files.Count > 0)
            {
                var file = System.Web.HttpContext.Current.Request.Files[0];
                file.SaveAs(@"C:\myfolder\aFile.png");

                return new HttpResponseMessage(HttpStatusCode.Created);
            }
            else
            {
                return new HttpResponseMessage(HttpStatusCode.BadRequest);
            }

        }
        catch (Exception ex)
        {
            return Request.CreateResponse(HttpStatusCode.BadRequest, ex.StackTrace);
        }
    }
}

【问题讨论】:

  • 如果您的应用程序没有使用 Windows 的默认代理配置,您必须在 HttpClient 实例中显式添加 fiddler 作为 http/https 代理。

标签: asp.net-mvc fiddler


【解决方案1】:

我认为答案是在 Postman 中发帖,在 Fiddler 中观察流量

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多