我是Android编程的业余爱好者。我使用Jsoup从一个网站获取html并将其放入textview,但我得到了错误。我该怎么解决这个?
我的代码:
package com.example.hashtag.asdasd;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
Document siteDoc;
String a;
Elements p;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn= (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new siteGetter().execute();
}
});
}
private class siteGetter extends AsyncTask < Void, Void, String>{
@Override
protected String doInBackground(Void... voids) {
try {
siteDoc = Jsoup.connect("http://hashtagedu.ir").get();
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
}
public void displaydata(){
p = siteDoc.getElementsByTag("p");
a=p.text();
TextView tv= (TextView) findViewById(R.id.textView);
tv.setText(a);
}
}
我的错误:
除了设置权限
之外,您当前不调用displaydata()
,如果您从后台任务调用,则应该设置一个处理程序,用于调用ui线程上的更改:
public class MainActivity extends AppCompatActivity {
Handler uiHandler = new Handler();
Document siteDoc;
String a;
Elements p;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn= (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new siteGetter().execute();
}
});
}
private class siteGetter extends AsyncTask < Void, Void, String>{
@Override
protected String doInBackground(Void... voids) {
try {
siteDoc = Jsoup.connect("http://hashtagedu.ir").get();
displaydata();
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
}
public void displaydata(){
p = siteDoc.getElementsByTag("p");
a=p.text();
uiHandler.post(new Runnable() {
@Override
public void run() {
TextView tv= (TextView) findViewById(R.id.textView);
tv.setText(a);
}
});
}
}
关于向ImageView添加下载图像(如已删除问题中所问)(假设id为r.id.ImageView
)
Bitmap bitmap;
public void displaydata(){
p = siteDoc.getElementsByTag("p");
a=p.text();
String imageUrl = siteDoc.select("img").first().attr("abs:src");
bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
uiHandler.post(new Runnable() {
@Override
public void run() {
TextView tv= (TextView) findViewById(R.id.textView);
tv.setText(a);
ImageView i = (ImageView)findViewById(R.id.imageView);
i.setImageBitmap(bitmap);
}
});
}
我使用以下函数从密码保护的https url接收xml文件。 在我们的服务器将php更新到7.0版本之前,一切正常。22 在那之后,我再也不能接收xml文件了。我只是得到一个空洞的回答。有人知道为什么吗? 编辑:我不知道什么php版本安装之前,我们不能降级。
我只是下载了最新版本的j汤(1.7.1)并遵循官方代码(更改了url)。然后我得到了“超文本传输协议错误获取url” 我的代码有什么问题?似乎错误只是发生在Android项目,因为我在一个工作正常的Java项目做同样的事情。 注意:-我已经添加了Internet权限
尝试使用Jsoup而不是网站API从网站上练习和获取信息。我的代码没有错误,但文本字段没有更改。它只是给我一个空白。我如何从网站上获取信息?我正试图获取主要新闻,以便在我的网站上发布。 我的代码:
从数据库获取数据时出错: 那我该怎么解决呢?
所以我尝试从pretag获取数据,我设置doc连接到url选择pretag,结果出错了,我需要获取的数据按这里
我想从下面列出的URL中删除HTML代码。问题是,我得到了这个错误:- 2016年8月14日下午6:40:36。主要严重错误:空组织。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=504,URL=http://www.bkstr.com/webapp/wcs/stores/servlet/CourseMaterialsResultsView?catalog