gpt4 book ai didi

java - 我在 Fiddler 从 Java 应用程序检测 HttpClient.execute(get) 时遇到困难

转载 作者:行者123 更新时间:2023-12-01 14:17:11 25 4
gpt4 key购买 nike

我是一名程序员,目前正在 .net 和 Java 之间徘徊,但我更倾向于 .net,但对 Java 的经验有限。我有一个Java应用程序,不是我自己开发的,它执行httpClient(get)(成为一个HttpsFactory)来从asp经典代码中获取响应,该代码位于通过带有查询字符串的特定url找到的不同代码服务器上存储用户认证信息。别问我为什么。

我们的质量保证团队正在测试的用户之一没有返回良好的响应,因此我尝试使用 fiddler 来查看我们得到的结果。我可以看到它正在连接,因为如果我输入在 asp 端验证的格式错误的密码。它生成了正确的错误消息,我们将其取回。 Fiddler 没有检测到任何这些。我查看了 fiddler View ,尝试配置我的 jvm 以通过 fiddlers 代理服务器。但我无法让它发挥作用。我正在运行 java 版本 1.7.0.21,我相信它是最新的。

我已在命令提示符中运行以下命令

jre -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888和 jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

并且 jre 未被识别。我也尝试过:

java -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp和 java -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

属性无法识别

我也尝试过

java -Dhttp.proxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

我刚刚获得了 java 命令的用法。

我还尝试在 http 连接之前将以下内容嵌入到我的代码中,但仍然没有检测到。

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

这里是我正在运行的java代码。

public String getHttpConnect(User user) {
HttpClient client=https.getHttpClient();
InputStream instream=null;
HttpEntity entity=null;
HttpGet get = https.getHttp(user);
try {
response = client.execute(get);
entity = response.getEntity();
if (entity != null) {
instream = entity.getContent();
Document document= read.read(instream);
Element root = document.getRootElement();
String content = root.elementText("permission");
if (content.equals("OK")) {
message = Global.CONNECT_SUCCESS;
} else {
message = ErrorMsg.CONNECT_FAIL;
}
}

}catch (Exception e) {
message = ErrorMsg.CONNECT_EXCEPTION;
get.abort();
log.error("HttpConnect error: "+e.toString());
}finally{
try {
if(instream!=null)instream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Inputstream exception "+e.toString());
log.error("Inputstream close exception: "+e.toString());
e.printStackTrace();
message = ErrorMsg.CONNECT_EXCEPTION;
}
client.getConnectionManager().shutdown();
}
return message;
}

public HttpClient getHttpClient() {
HttpClient client = new DefaultHttpClient();
client = WebClientDevWrapper.wrapClient(client);
client.getParams().setParameter(
CoreConnectionPNames.CONNECTION_TIMEOUT,
Global.CONNECTION_TIMEOUT);// connect timeout
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
Global.RESPONSE_TIMEOUT);// send data read timeout
return client;
}

public HttpGet getHttp(User user) {
String psw = user.getAccountpsw();
StringBuffer connectUrl = new StringBuffer();
if (Global.CURRENT_RUN_TYPE.equals(Global.BETA)) {
connectUrl.append(Global.DEFAULT_LOGIN_URL_BETA);
} else {
connectUrl.append(Global.DEFAULT_LOGIN_URL_LIVE);
}
connectUrl.append("?usr=");
connectUrl.append(user.getAccountname());
connectUrl.append("&pwd=");
connectUrl.append(psw);
connectUrl.append("&vers=2.5.20&");
connectUrl.append(random());
// connectUrl.append("&SkipCheckForFiles=TRUE");
StringBuffer logConnect = new StringBuffer();
logConnect.append("Logging into server using URL:");
logConnect.append(Global.LOG_NEWLINE);
logConnect.append(Global.DES.getLogEncString(connectUrl.toString()));
logConnect.append(Global.LOG_NEWLINE);
log.info(logConnect);
HttpGet get = new HttpGet(connectUrl.toString());
return get;
}

无论结果如何,感谢您的帮助。

最佳答案

试试这个:

     HttpHost proxy = new HttpHost("localhost", 8888);
CloseableHttpClient client = HttpClients.custom().setProxy(proxy).build();
HttpGet get_request = new HttpGet(url);

HttpResponse r = client.execute(get_request);
String Document = EntityUtils.toString(r.getEntity())

关于java - 我在 Fiddler 从 Java 应用程序检测 HttpClient.execute(get) 时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18021683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com