gpt4 book ai didi

android - 如何在 Android 上使用 Apache HttpClient 查看完整的 HttpPost 请求

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:21 27 4
gpt4 key购买 nike

所以我有构造 HttpPost 请求的代码,如下所示...

public LoginForm apa;
....
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("https",
SSLSocketFactory.getSocketFactory(), 443));
HttpParams httpparams = new BasicHttpParams();
SingleClientConnManager mgr = new SingleClientConnManager(httpparams, schemeRegistry);
HttpClient httpclient = new DefaultHttpClient(mgr, httpparams);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
for(String i : apa.getParams().keySet()){
nameValuePairs.add(new BasicNameValuePair(i, apa.getParams().get(i)));
}
List<NameValuePair> cookies = new ArrayList<NameValuePair>();
StringBuilder sb = new StringBuilder();
for(String i : apa.getCookies().keySet()){
sb.append(i);
sb.append("=");
sb.append(apa.getCookies().get(i));
sb.append(";");
}
// Trying to remove last ;
String cookie = sb.toString();
cookie = cookie.substring(0, cookie.length()-1);
HttpPost httppost = new HttpPost(URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httppost.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded");
httppost.setHeader("Cookie", cookie);
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
System.out.println(EntityUtils.toString(response.getEntity()));

它没有像我预期的那样登录,所以有没有一种方法可以输出整个请求( header 和所有请求)以将其与我在 Chrome 开发工具中看到的请求相匹配?我是不是想多了?一般有用于 Android 或 Java 的表单登录库吗?我需要添加内容长度吗?

最佳答案

打印标题很容易 - 您可以使用方法 getAllHeaders 列出它们.如果需要打印HttpEntity , 你可以使用方法 writeTo将整个实体写入 ByteArrayOutputStream并使用 toString 创建一个字符串.

关于android - 如何在 Android 上使用 Apache HttpClient 查看完整的 HttpPost 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300093/

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