我在Eclipse IDE中运行以下java程序:
import java.net.*;
import java.io.*;
public class HH
{
public static void main(String[] args) throws Exception
{
//if i comment out the system properties, and don't set any jvm arguments, the program runs and prints out the html fine.
System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyHost", "localhost");
System.setProperty("https.proxyPort", "8888");
URL x = new URL("https://www.google.com");
HttpURLConnection hc = (HttpURLConnection)x.openConnection();
hc.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.0)
AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2");
InputStream is = hc.getInputStream();
int u = 0;
byte[] kj = new byte[1024]; …Run Code Online (Sandbox Code Playgroud) 我在另一个项目中使用了Jakarta commons HttpClient,我希望使用相同的线路日志输出,但使用"标准"HttpUrlConnection.
我使用Fiddler作为代理,但我想直接从java记录流量.
捕获连接输入和输出流所发生的事情是不够的,因为HTTP标头是由HttpUrlConnection类编写和使用的,因此我将无法记录标头.
我想用服务器对服务器进行一些API调用HttpURLConnection.但请求不成功,返回:
<error>
<http_status>400 Bad Request</http_status>
<message>Unexpected request Content-Type header ''. Expecting 'application/x-www-form-urlencoded'.</message>
</error>
Run Code Online (Sandbox Code Playgroud)
所以我想检查发送到服务器的"真实"内容是什么.通过真实内容我的意思是确切的HTTP请求.
我有什么想法可以看到这个吗?
编辑: 基于这里的第一个答案,我应该澄清我的问题:我想避免使用像HTTP嗅探器或任何东西的外部程序,我希望有一个功能或属性或任何包含我正在寻找的信息.
如果不是这样,有人知道是否可以手动重建此信息(例如通过调用getRequestMethod()等几个函数)
我经常遇到这个问题,所以我自己也要努力建立这样的功能.只需知道如何:)
我正在用Java编写HTTP和WebSocket客户端以连接到任何http服务器.
我之前在js中编写了类似的东西,并且能够使用firefox和chrome中的开发人员工具的网络选项卡来查看发送的HTTP请求以及交换的Websocket消息.
我的问题是:Netbeans是否有任何工具或插件可以看到这些相同的请求和消息?