Android Studio - 如何检索网页内容?

时间:2017-02-03 23:06:49

标签: java android json web-services

所以我的任务是创建一个经常使用Web服务的Android应用程序。

我是android和java的新手,但我不明白为什么这不起作用。有人可以帮忙吗?此时我要做的就是记录一个网站的html代码,在这种情况下是谷歌。

MainActivity.java

@Service
class UserServiceController(val dsl: DSLContext, val teamService: TeamService) {

  // your class members

}

WebService.java

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

我不断在日志中出现错误2,为什么会这样?有人可以帮助使此代码工作并记录输出。 谢谢!

堆栈:

    package com.dummies.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.util.Log;
import com.dummies.myapplication.WebService;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String contents = WebService.getContents("http://www.google.com", "utf-8");
        Log.d("Jon", contents);


        setContentView(R.layout.activity_main);
    }

    public void invokeWS(){

    }
}

2 个答案:

答案 0 :(得分:0)

问题在于Android不允许您在UIOperations发生的同一个线程上执行网络操作。

要连接到网络,您必须使用AsyncTasks或Services创建不同的线程。

以下是有关Android上的网络的详细解答:How to fix android.os.NetworkOnMainThreadException?

答案 1 :(得分:0)

也许你应该使用Jsoup Library。这太酷了。您可以在此处找到更多信息。

here