如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查

举报
汪子熙 发表于 2022/02/17 21:23:13 2022/02/17
【摘要】 我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用工具Fiddler来监控。打开Fiddler,在connections面板里找到Fiddler监听的端口号8...

我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java
代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用工具Fiddler来监控。

打开Fiddler,在connections面板里找到Fiddler监听的端口号8888:

如果是使用Apache的HTTPClient进行网络请求发送,代码如下:

使用HttpHost设置请求代理:

private static void downloadCommerce(){
		HttpHost proxy = new HttpHost("localhost", 8888, "http");
		RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
		CloseableHttpClient client= HttpClientBuilder.create().setDefaultRequestConfig(config).build();

		String url = "https://jerrywang.com:9002/rest/v2/electronics/users/jerry.wang@sap.com";
		String token = "test";
	    HttpGet get = new HttpGet(url);
	    get.setHeader("Authorization", "Bearer " + token);
	        try {
	            HttpResponse response = client.execute(get);
	            HttpEntity entity = response.getEntity();
	            String result = EntityUtils.toString(entity, "UTF-8");
	            System.out.println("url: " + result);
	        } catch (Exception e){
	        	e.printStackTrace();
	        }
	}

执行Java应用,然后到Fiddler里,看到了监控到的HTTP请求各种明细,比如Java代码里硬编码的OAuth 2的认证token test:

Java代码收到的服务器端返回的错误消息:

这个错误消息在Fiddler里当然也是可以看到的:

在这种场景里,Fiddler扮演的就是类似Chrome开发者工具的角色。

打开SAP WebIDE,新建一个项目,选择New from template,基于Multi-Target Application模板创建:


项目创建完毕后,右键选择New->Java Module:

新建的这个Java module同样要基于模板选择一个类型:这里我选择Simple Web Application:



Run->Run as Java Application:

这个操作会自动把该Java应用部署到SAP Cloud Platform的CloudFoundry环境上去,生成一个外界可以访问的url:

我们回到SAP云平台,看到这个自动被部署的Java应用:

能按照我们期望的方式工作:

WebIDE里同样可以进行单步调试:


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。