我导入了httpclient包并想使用 .addHeader和.execute,但我总是得到错误 '无法解析符号'execute''和'无法解析符号'addHeader'' 即使我导入了必要的包。为什么我得到'无法解析符号'执行''?
public class MyActivity extends Activity {
public TextView quellcode;
public TextView geschichte;
private String string1 = "gahwareawbad password gagaw";
@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);
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> {
//AUTOMATIC LOGIN
//END OF LOGIN
//READ WEBPAGE
@Override
protected String doInBackground(String... urls) {
String response = "";
downloadPage("http://www.besselgymnasium.de/fileadmin/Vertretung/Vertretungsplan_Schueler/subst_001.htm");
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
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
private void downloadPage (String url){
try{
URL obj = new URL(url);
// Send post request
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes("username"+"password");
wr.flush();
wr.close();
InputStream is = con.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"ISO-8859-1");
BufferedReader br = new BufferedReader(isr);
for (String line = br.readLine(); line != null ; line = br.readLine()) {
// the variable line contains the line of text. You can insert it in your database of file
}
con.disconnect();
} catch (Exception e){
// TODO error handling
}
}
@Override
protected void onPostExecute(String result) {
quellcode.setText(result);
//CHECK IF CLASS IS CANCELED
if(quellcode.getText().toString().contains("eigenverant. Arb.") && quellcode.getText().toString().contains("Pön")){
geschichte.setText("OUTPUT: SUCCESS!");
}else{
geschichte.setText("OUTPUT: FAIL!");
}
//END OF CHECK
}
}
public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[]{"http://www.besselgymnasium.de/fileadmin/Vertretung/Vertretungsplan_Schueler/subst_001.htm"});
}
}
我编辑我上面的代码,其中包括了doInBackground部分。 我应该用你的代码替换它吗? – Fynn
@ user2051194:是的更改代码与答案 –
相同好吧,我现在用你的代码替换了doInBackground部分。 现在我收到错误: java:unreported exception java.io.IOException;必须被捕获或宣布被抛出 在这一行 httpclient.execute(request); – Fynn