gpt4 book ai didi

java - Android 上的 HTTP POST 请求

转载 作者:行者123 更新时间:2023-12-01 19:14:51 24 4
gpt4 key购买 nike

在过去的两个小时里,我一直在尝试向此页面 http://www.halebop.se/butik/byt_behall_nummer/ 发出 POST 请求。并尝试发送numberToPort。不过我得到了一堆 cookies 和一个 302 暂时移回来。

我想做的就是发送带有号码的 POST 请求并取回最终页面。在 iOS 上,我使用 ASIHTTPRequest 来处理重定向和 cookies。

iOS 代码:

NSString *halebopURLString = @"http://www.halebop.se/kontantkort/byt_behall_nummer/#";
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:halebopURLString]];
[request setPostValue:halebopNumber forKey:@"numberToPort"];
[request setPostValue:@"continue" forKey:@"action"];
[request setPostValue:@"submit" forKey:@"submit"];
[request startSynchronous];

如何在 Android 上执行此操作?

作为替代方案,PHP 解决方案也是可以接受的。

编辑:尝试过这个,它没有给出任何输出,也没有异常。我有互联网许可。预期结果:发送 POST,获取 302 和 cookie,将 cookie 从 302 发送到 URL,并获取 HTML(用 FireBug 检查),但是我什么也没得到。

try {
InputStream myInputStream =null;
URL url;
url = new URL("http://www.halebop.se/kontantkort/byt_behall_nummer/#");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
conn.setRequestMethod("POST");
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write("numberToPort="+n+"&action=continue&submit=submit");
wr.flush();
myInputStream = conn.getInputStream();
wr.close();

BufferedReader rd = new BufferedReader(new InputStreamReader(myInputStream), 4096);
String line;
StringBuilder sbResult = new StringBuilder();
while ((line = rd.readLine()) != null) {
sbResult.append(line);
Log.d(TAG, "Line "+line);
}
rd.close();
String contentOfMyInputStream = sbResult.toString();
Log.d(TAG, "Output "+contentOfMyInputStream);
} catch (Exception e) {
Log.d(TAG,e.getMessage());
}

最佳答案

以下是设置帖子参数的方法:

            HttpPost httpost = new HttpPost(LOGIN_URL);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("test1","test1" ));
nvps.add(new BasicNameValuePair("test2", "test2" ));

httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

response = getResponse(httpost);

Here是关于代码的详细解释。

我还解释了如何从响应中检索 HTTP cookie 并将其设置到请求中 here

关于java - Android 上的 HTTP POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154421/

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