C# 使用Fiddler捕获本地HttpClient发出的请求操作

示例接口定义

为了方便笔者先自己写了个简单的接口用于展示,返回当前时间,具体如下

/// <summary>
/// GetToday.
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("GetTime/Today")]
public MyDateTime GetToday()
{
  var now = DateTime.Now;
  return new MyDateTime
  {
    Year = now.Year,
    Month = now.Month,
    Day = now.Day,
    Hour = now.Hour,
    Minute = now.Minute,
    Second = now.Second,
  };
}

上面的MyDateTime是展示用的自定义类,其中的属性已在return中表示。

使用HttpClient发起请求

var httpClient = new HttpClient();
var url = "http://localhost:5000/GetTime/Today";
var response = await httpClient.GetAsync(new Uri(url));

不出意外Fiddler是抓不到的。

配置Fiddler

打开Tools->Options

然后切换到Connections选项卡,我们可以看到Fiddler默认监听的是8888端口,这就好办了我们需要开启HttpClient中的代理。

设置HttpClient

修改请求为:

var httpClient = new HttpClient(new HttpClientHandler
{
  UseProxy = true, // 使用代理,
  Proxy = new WebProxy(new Uri("http://localhost:8888")) // port:8888就是Fiddler默认监听的端口
});

var url = "http://localhost:5000/GetTime/Today";
var response = await httpClient.GetAsync(new Uri(url));

再次发起请求

Fiddler已经抓到了

补充知识:解决Fiddler无法捕获本地HttpWebRequest(C#.net)请求和HttpURLConnection(Java)请求

方法很简单,就是设置本地代理

C#

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Proxy = new WebProxy("127.0.0.1:8888", true);

Java

jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

或者

System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyHost", "localhost");
System.setProperty("https.proxyPort", "8888");

以上这篇C# 使用Fiddler捕获本地HttpClient发出的请求操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C# 使用Fiddler捕获本地HttpClient发出的请求操作

    示例接口定义 为了方便笔者先自己写了个简单的接口用于展示,返回当前时间,具体如下 /// <summary> /// GetToday. /// </summary> /// <returns></returns> [HttpGet] [Route("GetTime/Today")] public MyDateTime GetToday() { var now = DateTime.Now; return new MyDateTime {

  • ASP.NET Core使用IHttpClientFactory发出HTTP请求

    1.HttpClient类使用存在的问题 HttpClient类的使用所存在的问题,百度搜索的文章一大堆,好多都是单纯文字描述,让人感觉不太好理解,为了更好理解HttpClient使用存在的问题,下面让我们通过代码跟示例来描述. using(var client = new HttpClient()) 传统关闭连接方法如上述代码所示,但当使用using语句释放HttpClient对象的时候,套接字(socket)也不会立即释放,下面我们通过请求aspnetmonsters站点的示例来验证下: c

  • JAVA通过HttpClient发送HTTP请求的方法示例

    HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 嵌入在 HTML 页面中的javascript 代码,猜测内容类型,重新格式化请求/重定向URI,或者其它和 HTTP 运输无关的功能. HttpClient使用 使用需要引入jar包,maven项目引入如下: <dependency> <groupId>org.apache.htt

  • httpclient模拟post请求json封装表单数据的实现方法

    废话不说上代码: public static String httpPostWithJSON(String url) throws Exception { HttpPost httpPost = new HttpPost(url); CloseableHttpClient client = HttpClients.createDefault(); String respContent = null; // json方式 JSONObject jsonParam = new JSONObject(

  • JAVA利用HttpClient进行POST请求(HTTPS)实例

    最近,需要对客户的接口做一个包装,然后供自己公司别的系统调用,客户接口是用HTTP URL实现的,我想用HttpClient包进行请求,同时由于请求的URL是HTTPS的,为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程. 1.写一个SSLClient类,继承至HttpClient package com.pcmall.service.sale.miaomore.impl; import java.security.cert.CertificateExcept

  • nodejs搭建本地服务器并访问文件操作示例

    本文实例讲述了nodejs搭建本地服务器并访问文件操作.分享给大家供大家参考,具体如下: 安装node:https://nodejs.org/en/download/ 在本地建立目录:f:/nodetest,在该目录下新建index.html作为我们将要访问的内容.新建server.js作为node开启的入口: $ cd f:/nodetest $ mkdir index.html $ mkdir server.js index.html文件里简单写一点东西: <!DOCTYPE html>

  • 为HttpClient添加默认请求报头的四种解决方案

    前言 HttpClient在Web调用中具有广泛的应用,而为它添加默认请求头是我们经常遇到的需求,本文介绍4种为HttpClient添加默认请求头的方式.下面话不多说了,来一起看看详细的介绍吧 第一种方式 直接在创建的HttpClient对象的DefaultRequestHeaders集合中添加报头. class Program { static Task Main()=> SendAsync1(); private static async Task SendAsync1() { var ht

  • vue 本地环境跨域请求proxyTable的方法

    主要在config->index.js中配置 proxyTable: { '/gameapi': { changeOrigin: true, // target: 'http://rap.id.cn/mockjs/20', mock地址 target: 'http://192.168.1.124',服务器地址 pathRewrite: { '^/gameapi': '/gameapi' }, secure:false } } 因此,发送请求时候url写为('/gameapi/gift-apply

  • JavaScript中发出HTTP请求最常用的方法

    JavaScript具有很好的模块和方法来发送可用于从服务器端资源发送或接收数据的HTTP请求.在本文中,我们将介绍一些在JavaScript中发出HTTP请求的流行方法. Ajax Ajax是发出异步HTTP请求的传统方式.可以使用HTTP POST方法发送数据,并使用HTTP GET方法接收数据.我们来看看发送GET请求.我将使用JSONPlaceholder,这是一个免费的在线REST API,适用于以JSON格式返回随机数据的开发人员. 要在Ajax中进行HTTP调用,您需要初始化一个新

  • C#爬虫基础之HttpClient获取HTTP请求与响应

    一.概述 Net4.5以上的提供基本类,用于发送 HTTP 请求和接收来自通过 URI 确认的资源的 HTTP 响应. HttpClient是一个高级 API,用于包装其运行的每个平台上可用的较低级别功能. // HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks. static readonly HttpClient client = new HttpC

随机推荐