gpt4 book ai didi

java - 从 Android 应用程序登录使用 HTTP 基本身份验证的网站

转载 作者:行者123 更新时间:2023-12-01 07:27:08 25 4
gpt4 key购买 nike

我已经搜索了很多方法来做到这一点,但我找不到任何可行的方法。

我想登录此网站: http://www.besselgymnasium.de/fileadmin/Vertretung/Vertretungsplan_Schueler/subst_001.htm它使用 HTTP 基本身份验证使用我的 Android 应用程序来读出源代码,但我不知道如何让我的应用程序自动登录。

有人可以告诉我如何实现这一目标吗?

我尝试的最后一件事是:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
quellcode = (TextView) findViewById(com.example.MainActivity.R.id.TextView01);
geschichte = (TextView) findViewById(com.example.MainActivity.R.id.geschichte);
datum1 = (TextView) findViewById(com.example.MainActivity.R.id.datum1);
datum1.setText("25.03.2014");
readWebpage(quellcode);

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... urls) {
String credentials = "username" + ":" + "password";
Base64.encodeToString(credentials.getBytes(), Base64.DEFAULT);





String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();

HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Authorization", "Basic "+credentials);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();

BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}

} catch (Exception e) {
e.printStackTrace();
}
}
return response;

}
//END OF READING

@Override
protected void onPostExecute(String result) {
quellcode.setText(result);


}
}


public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[]{"http://username:password@www.besselgymnasium.de/fileadmin/Vertretung/Vertretungsplan_Schueler/subst_001.htm"});

}

}

最佳答案

要访问该网站,您必须添加授权 header 。

首先,您必须使用 Base64 连接并编码您的凭据:

string credentials = username + ":" + password;
string credBase64 = Base64.encodeToString(credentials.getBytes(), Base64.DEFAULT).replace("\n", "");

然后将此 header 添加到您的 httpClient:

httpGet.setHeader("Authorization", "Basic "+credBase64);

如果您需要更多帮助,请随时询问。

关于java - 从 Android 应用程序登录使用 HTTP 基本身份验证的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22698770/

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