如何通过抓包工具fiddler获取java程序的http请求

 我来答
anglewang98
2015-12-24 · TA获得超过535个赞
知道小有建树答主
回答量:420
采纳率:80%
帮助的人:283万
展开全部

fiddler实际上是通过代理的方式来工作的。默认端口是8888,所以用来请求http的客户端,需要设定代理,就能被截获并记录。这种方式必须依赖fiddler进程正常工作。

以下是java设置代理的一种方式。具体要看使用什么客户端程序了。不同的客户端程序设置代理的方式肯定不一样。

Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1", 8888));  
URL serverUrl = new URL(url);  
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection(proxy);

样例:

package com.http;  
  
import java.io.BufferedReader;  
import java.io.InputStreamReader;  
import java.net.HttpURLConnection;  
import java.net.InetSocketAddress;  
import java.net.Proxy;  
import java.net.URL;  
  
public class Http302Redirect {  
  
    public static void main(String[] args) {  
        try {  
            String url = "http://weibo.com/1253711052";  
            System.out.println("访问地址:" + url);  
  
            Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,  
                    new InetSocketAddress("127.0.0.1", 8888));  
            URL serverUrl = new URL(url);  
            HttpURLConnection conn = (HttpURLConnection) serverUrl  
                    .openConnection(proxy);  
            conn.setRequestMethod("GET");  
  
            conn.addRequestProperty("Accept-Charset", "UTF-8;");  
            conn.addRequestProperty("User-Agent",  
                    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");  
            conn.addRequestProperty("Referer", "http://weibo.com");  
            conn.connect();  
            BufferedReader reader = new BufferedReader(new InputStreamReader(  
                    conn.getInputStream()));  
            StringBuffer buffer = new StringBuffer();  
            String line = reader.readLine();  
            while (line != null) {  
                buffer.append(line).append("\r\n");  
                line = reader.readLine();  
            }  
            reader.close();  
            conn.disconnect();  
            System.out.println(buffer);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
  
}
QQMSD8
2015-12-15 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部
可使用android自带的httpclient框架实现。

1. GET 方式传递参数
//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "数据")); //增加参数1
params.add(new BasicNameValuePair("param2", "value2"));//增加参数2
String param = URLEncodedUtils.format(params, "UTF-8");//对参数编码
String baseUrl = "服务器接口完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//将URL与参数拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //发起GET请求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

2. POST方式 方式传递参数
//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加参数1
params.add(new BasicNameValuePair("param2", "第二个参数"));//增加参数2
try {
HttpPost postMethod = new HttpPost(baseUrl);//创建一个post请求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //执行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
易建议
2015-12-17 · 喜欢分享的人都容易获得幸福感~
易建议
采纳数:344 获赞数:1342

向TA提问 私信TA
展开全部
fiddler抓不到java的请求,因为java通过了许多层代理,并不是简单的请求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式