Net/HTTP debug tips

本文介绍如何利用netcat监听HTTP请求数据,以便在不使用浏览器工具的情况下进行调试。通过netcat,开发者可以在本地创建一个监听端口,将所有发往特定地址的HTTP请求实时显示出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set debug output

http = Net::HTTP.new("www.something.com", 80)
http.set_debug_output($stdout)

这样就可以在post的时候显示传输的内容,便于调试。

使用nc监视http请求数据

浏览器请求数据可以通过firebug等工具查看,但是有时候需要自己的程序去请求其他应用,这样调试起来很不方便。
通过netcat可以监听一个端口,并且随时回显请求的数据的最原始状态。

终端1:

 nc -v -l localhost 12345

返回:

Connection from 0.0.0.0 port 12345 [tcp/*] accepted
PUT / HTTP/1.1
User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: localhost:12345
Accept: */*
Content-Length: 5
Content-Type: application/x-www-form-urlencoded

{a:1}

终端2:

curl -XPUT http://localhost:12345 -d '{a:1}'

net/http set_form_data

Ruby自带的net/http库,的set_form_data方法在传输之前会进行encode_www_form编码,而普通的post方法是不会的:

def set_form_data(params, sep = '&')
  query = URI.encode_www_form(params)
  query.gsub!(/&/, sep) if sep != '&'
  self.body = query
  self.content_type = 'application/x-www-form-urlencoded'
end



http://rubylution.herokuapp.com/topics/20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值