gpt4 book ai didi

android - Android HTTPS 页面上的 POST 在回答时返回空页面

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:39 25 4
gpt4 key购买 nike

我正在尝试对 HTTPS 网址执行 POST 请求。下面的代码。问题是

br.readline();

什么都不返回。没有任何形式的异常(exception)。

我尝试使用其他 url,一些在 php 中手工制作以在本地服务器上运行并返返回告,我尝试删除

br.flush();
br.close();

但我无法让它工作。我在 stackoverflow 上阅读并遵循了许多示例,并在互联网上找到了这些示例,但我真的不明白我做错了什么。

SSL 部分似乎没问题(没有像我遇到的其他情况那样抛出异常)。

我在没有 SSL 的情况下尝试过,结果相同。几乎相同的代码曾经工作过,我一定是为了最坏的情况而改变了一些东西。测试平台为4.2.2 Android平板电脑。

manifest 里面的权限如下,其中一些需要做其他用途:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

我试过这个:https post in android 4.0但没办法。我读了很多其他文章,但我没有想法。

代码:

package shub.wisprv;

import java.io.IOException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.InputStreamReader;
import android.os.AsyncTask;


public class example extends AsyncTask<Void, Void, String> {

public void example() {}

protected String doInBackground(Void... stringarray) {


try {
URL login = new URL("https://it.portal.vodafone-wifi.com/jcp/it?res=login&uamip=192.168.6.1&uamport=80&challenge=f5aa36b054101c5edd56afcd00a10774&mac=18-FE-34-58-B8-80&ip=192.168.6.2&nasid=90-35-6E-41-64-B0&userurl=http://www.amiga.com");

HttpsURLConnection postConn = (HttpsURLConnection) login.openConnection();

String postFields = "UserName=foobar@foobar.com&Password=password&chooseCountry=VF_IT/";

byte[] postData = postFields.getBytes("UTF-8");
int postDataLength = postData.length;

postConn.setRequestMethod("POST");
postConn.setInstanceFollowRedirects(false);
postConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
postConn.setRequestProperty("charset", "utf-8");
postConn.setDoOutput(true);
postConn.setDoInput(true);
//postConn.setChunkedStreamingMode(0);
postConn.setRequestProperty("Content-Length", Integer.toString(postDataLength));
postConn.setUseCaches(false);

OutputStream wr = (OutputStream) postConn.getOutputStream();
wr.write(postData);

wr.flush();
wr.close();



String html = "";
String inputLine;
BufferedReader br = new BufferedReader(new InputStreamReader(postConn.getInputStream()));
while ((inputLine = br.readLine()) != null) {
html += inputLine;
}

br.close();
} catch (IOException e) {
e.printStackTrace();
}

return "";

}
}

调用方法:

new example().execute();

最佳答案

你也必须输入这个

postConn.connect();

设置所有参数后,您的代码将如下所示:

public class example extends AsyncTask<Void, Void, String> {

public void example() {}

protected String doInBackground(Void... stringarray) {


try {
URL login = new URL("https://it.portal.vodafone-wifi.com/jcp/it?res=login&uamip=192.168.6.1&uamport=80&challenge=f5aa36b054101c5edd56afcd00a10774&mac=18-FE-34-58-B8-80&ip=192.168.6.2&nasid=90-35-6E-41-64-B0&userurl=http://www.amiga.com");

HttpsURLConnection postConn = (HttpsURLConnection) login.openConnection();

String postFields = "UserName=foobar@foobar.com&Password=password&chooseCountry=VF_IT/";

byte[] postData = postFields.getBytes("UTF-8");
int postDataLength = postData.length;

postConn.setRequestMethod("POST");
postConn.setInstanceFollowRedirects(false);
postConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
postConn.setRequestProperty("charset", "utf-8");
postConn.setDoOutput(true);
postConn.setDoInput(true);
//postConn.setChunkedStreamingMode(0);
postConn.setRequestProperty("Content-Length", Integer.toString(postDataLength));
postConn.setUseCaches(false);
postConn.connect(); //This is necessary to setup a connection

OutputStream wr = (OutputStream) postConn.getOutputStream();
wr.write(postData);

wr.flush();
wr.close();



String html = "";
String inputLine;
BufferedReader br = new BufferedReader(new InputStreamReader(postConn.getInputStream()));
while ((inputLine = br.readLine()) != null) {
html += inputLine;
}

br.close();
} catch (IOException e) {
e.printStackTrace();
}

return "";

}
}

关于android - Android HTTPS 页面上的 POST 在回答时返回空页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228158/

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